讀古今文學網 > 編寫高質量代碼:改善JavaScript程序的188個建議 > 建議11:慎重使用偽數組 >

建議11:慎重使用偽數組

JavaScript沒有真正的數組,因此typeof運算符不能辨別數組和對象。偽數組在JavaScript中有很高的易用性,程序員不用給它設置維度,而且永遠不用擔心產生越界錯誤,但JavaScript數組的性能相比真正的數組可能更糟糕。要判斷一個值是否為數組,必須使用constructor屬性,例如:


if(value&&typeof value==='object'&&value.constructor===Array){

}


arguments不是一個數組,它是一個帶有length成員屬性的對象,很多時候會把它理解為一個偽數組。使用上面的檢測方法會將arguments識別為一個數組,有時候這是希望得到的結果,儘管arguments不包含任何數組的方法。