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]
}

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