javascript區分數組和對象

js中沒有一個好的機制來區分數組和對象。typeof運算符報告數組的類型是‘object’,要確定一個對象是否是數組我們可以通過自己定義的isArray方法來判斷。

先小結以下typeof運算符:

字符串、數字、布爾類型typeof運算符分別返回string, number, boolean。

typeof(null)返回object

自定義方法區分數組和對象:

function isArray(obj) {
    return obj && typeof(obj) === 'object' && obj.constructor === Array
}

該方法在識別從不同的窗口或幀(frame)裏的構造函數時會失敗。有一個更好的方法判斷一個對象是否時數組:

function isArray(obj) {
    return Object.prototype.toString.apply(obj) === '[object Array]';
}

參考:《JavaScript語言精粹》

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章