(本文摘錄于阮一峰老師所寫文章,https://wangdoc.com/javascript/basic/index.html,作個(gè)人學(xué)習(xí)使用。)

構(gòu)造函數(shù)
1、Array作為構(gòu)造函數(shù),行為很不一致。因此,不建議使用它生成新數(shù)組,直接使用數(shù)組字面量是更好的做法。
靜態(tài)方法
2、Array.isArray()方法返回一個(gè)布爾值,表示參數(shù)是否為數(shù)組。它可以彌補(bǔ)typeof運(yùn)算符的不足,typeof只能返回object。
實(shí)例方法
3、
(1)valueOf(),toString():對(duì)象的通用方法,數(shù)組的valueOf方法返回?cái)?shù)組本身,數(shù)組的toString方法返回?cái)?shù)組的字符串形式。
(2)push(),pop():push方法用于在數(shù)組的末端添加一個(gè)或多個(gè)元素,并返回添加新元素后的數(shù)組長(zhǎng)度。注意,該方法會(huì)改變?cè)瓟?shù)組。pop方法用于刪除數(shù)組的最后一個(gè)元素,并返回該元素。注意,該方法會(huì)改變?cè)瓟?shù)組。兩者形成了一種棧結(jié)構(gòu)(stack)。
(3)shift(),unshift():shift()方法用于刪除數(shù)組的第一個(gè)元素,并返回該元素。注意,該方法會(huì)改變?cè)瓟?shù)組。unshift相反。shift與push可以組成隊(duì)列結(jié)構(gòu)(queue)。
(4)join():join()方法以指定參數(shù)作為分隔符,將所有數(shù)組成員連接為一個(gè)字符串返回。如果不提供參數(shù),默認(rèn)用逗號(hào)分隔。如果數(shù)組成員是undefined或null或空位,會(huì)被轉(zhuǎn)成空字符串。
(5)concat():concat方法用于多個(gè)數(shù)組的合并。它將新數(shù)組的成員,添加到原數(shù)組成員的后部,然后返回一個(gè)新數(shù)組,原數(shù)組不變。如果數(shù)組成員包括對(duì)象,concat方法返回當(dāng)前數(shù)組的一個(gè)淺拷貝。所謂“淺拷貝”,指的是新數(shù)組拷貝的是對(duì)象的引用。
(6)reverse():reverse方法用于顛倒排列數(shù)組元素,返回改變后的數(shù)組。注意,該方法將改變?cè)瓟?shù)組。
(7)slice():slice方法用于提取目標(biāo)數(shù)組的一部分,返回一個(gè)新數(shù)組,原數(shù)組不變。slice方法的一個(gè)重要應(yīng)用,是將類似數(shù)組的對(duì)象轉(zhuǎn)為真正的數(shù)組。
Array.prototype.slice.call({ 0: 'a', 1: 'b', length: 2 }) // ['a', 'b']
(8)splice():splice方法用于刪除原數(shù)組的一部分成員,并可以在刪除的位置添加新的數(shù)組成員,返回值是被刪除的元素。注意,該方法會(huì)改變?cè)瓟?shù)組。
(9)map():map方法將數(shù)組的所有成員依次傳入?yún)?shù)函數(shù),然后把每一次的執(zhí)行結(jié)果組成一個(gè)新數(shù)組返回。map方法的回調(diào)函數(shù)有三個(gè)參數(shù),elem為當(dāng)前成員的值,index為當(dāng)前成員的位置,arr為原數(shù)組([1, 2, 3])。
(10)forEach():forEach方法與map方法很相似,也是對(duì)數(shù)組的所有成員依次執(zhí)行參數(shù)函數(shù)。但是,forEach方法不返回值,只用來(lái)操作數(shù)據(jù)。這就是說(shuō),如果數(shù)組遍歷的目的是為了得到返回值,那么使用map方法,否則使用forEach方法。
(11)filter():filter方法用于過(guò)濾數(shù)組成員,滿足條件的成員組成一個(gè)新數(shù)組返回。它的參數(shù)是一個(gè)函數(shù),所有數(shù)組成員依次執(zhí)行該函數(shù),返回結(jié)果為true的成員組成一個(gè)新數(shù)組返回。該方法不會(huì)改變?cè)瓟?shù)組。
(12)reduce()、reduceRight():reduce方法和reduceRight方法依次處理數(shù)組的每個(gè)成員,最終累計(jì)為一個(gè)值。它們的差別是,reduce是從左到右處理(從第一個(gè)成員到最后一個(gè)成員),reduceRight則是從右到左(從最后一個(gè)成員到第一個(gè)成員),其他完全一樣。