一、Array
1. 定義一個Array
let a = ['a', 'b']
let a = new Array('a', 'b')
2. var a = new Array(3)與var a = new Array(3,3)的區(qū)別
new Array(3)
生成一個長度為3的空數(shù)組俏险,new Array(3,3)
生成一個第0項和第一項都是3扬绪,長度為2的數(shù)組
3. var a = [1, 2, 3] 與 var obj = { 0: 1, 1: 2, 2: 3, length: 3}的區(qū)別
a
中的__proto__
指向 Array.prototype
,而obj
中的 __proto__
指向Object.prototype
4. 偽數(shù)組
形如{0:1, 1:2, 2:3, 3:4, length:4}
莹痢,但__proto__
不指向Array.prototype
的對象竞膳。在JS中诫硕,已知唯一的一個偽數(shù)組是函數(shù)參數(shù)[arguments]
5.foreach()
a.foreach(function(x,y){})
,foreach()接收兩個參數(shù)锉走,第一個是數(shù)組的value
藕届,第二個是數(shù)組的key
。
6.sort()梁厉,sort是原地排序踏兜,會改變原值
-
sort()
函數(shù)默認從小到大排序 -
sort(function(x,y){return x-y})
從小到大排序 -
sort(function(x,y){return y-x})
從大到小排序
7.join()
-
a.join()
默認用逗號連接 -
a.join("方方")
用括號里的內(nèi)容連接
8.concat()
-
a.concat(b)
連接兩個數(shù)組庇麦,并返回一個新的數(shù)組
-
var b = a.concat([])
用來復制一個數(shù)組。因為concat()
會返回一個新的數(shù)組垮媒,所以b
不等于a
9.map()
map()
會對數(shù)組中的每一個元素執(zhí)行括號內(nèi)的函數(shù)并返回結(jié)果睡雇。
注:返回的數(shù)組中的元素取決于括號內(nèi)函數(shù)的返回值,與原數(shù)組的元素沒有關(guān)系
10.filter()
filter(fn)
用括號內(nèi)的函數(shù)對數(shù)組內(nèi)容進行篩選秕豫,返回true
的留下混移,false
被篩選掉
11.reduce()
a.reduce(functin(prev, curr){ return prev+curr}, 0)
侮穿,reduce()接收兩個參數(shù),第一個參數(shù)是函數(shù)(該函數(shù)接收兩個參數(shù)回铛,第一個參數(shù)是上一次運算的結(jié)果克锣,第二個參數(shù)是當前的數(shù)組元素),第二個參數(shù)是運算的初始值免姿,即prev
的初始值榕酒。
-
reduce()
的一些神奇操作
二想鹰、Function
1. 聲明函數(shù)
(1) var f = function(){}
//具名函數(shù)
(2) function(){}
//匿名函數(shù)
(3) var f = new Function('param1', 'param2',...,'functionBody')
//用構(gòu)造函數(shù)來聲明