4種驗證數組的方法


使用操作符 instanceof
在這裏插入圖片描述
檢測的是對象的原型上是否是數組類型,存在問題比如我們將構造函數的原型定位爲數組的原型 instanceof是檢測不出來的

function Test(){}
Test.prototype = Array.prototype
let a = new Test()
console.log(a instanceof Array)

在這裏插入圖片描述
在這裏插入圖片描述

驗證對象的構造函數
在這裏插入圖片描述
在這裏插入圖片描述
上面自己定義的Test方法的實例調用constructor也會返回true這也是個不足
在這裏插入圖片描述

而且上面兩種檢測方法會因爲頁面中存在多個iframe或多個全局環境而出現問題,下面的方法則沒有這個問題


使用es5的方法isArray 較爲精準
在這裏插入圖片描述
用上面我們自己指定數組原型的實例檢測也是成功檢測爲false的
在這裏插入圖片描述

檢測對象的原型
在這裏插入圖片描述
當檢測其他數據類型
在這裏插入圖片描述
檢測自己指定數組原型對象的函數實例也能檢測出來
在這裏插入圖片描述

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