js中instanceof判斷數組時的坑

1. instanceof在判斷數組是,即會把數組當做Array類型,又會把數組當做Object類型,都會返回true。要嚴格驗證一個數組,最好是用constructor,能嚴格區分數組和對象。注意:大部分情況都可以用instanceof判斷是否是數組,但是在判斷一個變量是對象或非對象時,會存在坑,如:

if (arr instanceof Object) {     //當arr可能是[1]或{id:1,name:"Ace"},當arr爲[1]時會把arr 
                                 //instanceof Object會返回true,進而執行arr.id,從而報錯。       
    return arr.id
} else {
    return arr[0]
}

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