數(shù)組的空位指,數(shù)組的某一個(gè)位置沒有任何值。比如,Array構(gòu)造函數(shù)返回的數(shù)組都是空位。Array(3)//[,,,]上面代碼中,Array(3)返回一個(gè)具有3個(gè)空位的數(shù)組。注意,空位不是undefined,一個(gè)位置的值等于undefined,依然是有值的??瘴皇菦]有任何值,in運(yùn)算符可以說明這一點(diǎn)。0in[undefined,undefined,undefined]//true0in[,,,]//false上面代碼說明,第一個(gè)數(shù)組的0號位置是有值的,第二個(gè)數(shù)組的0號位置沒有值。ES5對空位的處理,已經(jīng)很不一致了,大多數(shù)情況下會(huì)忽略空位。forEach(),filter(),reduce(),every()和some()都會(huì)跳過空位。map()會(huì)跳過空位,但會(huì)保留這個(gè)值join()和toString()會(huì)將空位視為undefined,而undefined和null會(huì)被處理成空字符串。//forEach方法[,'a'].forEach((x,i)=>console.log(i));//1//filter方法['a',,'b'].filter(x=>true)//['a','b']//every方法[,'a'].every(x=>x==='a')//true//reduce方法[1,,2].reduce((x,y)=>x+y)//3//some方法[,'a'].some(x=>x!=='a')//false//map方法[,'a'].map(x=>1)//[,1]//join方法[,'a',undefined,null].join('#')//"#a##"//toString方法[,'a',undefined,null].toString()//",a,,"ES6則是明確將空位轉(zhuǎn)為undefined。