一
使用操作符 instanceof
檢測的是對象的原型上是否是數組類型,存在問題比如我們將構造函數的原型定位爲數組的原型 instanceof是檢測不出來的
function Test(){}
Test.prototype = Array.prototype
let a = new Test()
console.log(a instanceof Array)
二
驗證對象的構造函數
上面自己定義的Test方法的實例調用constructor也會返回true這也是個不足
而且上面兩種檢測方法會因爲頁面中存在多個iframe或多個全局環境而出現問題,下面的方法則沒有這個問題
三
使用es5的方法isArray 較爲精準
用上面我們自己指定數組原型的實例檢測也是成功檢測爲false的
四
檢測對象的原型
當檢測其他數據類型
檢測自己指定數組原型對象的函數實例也能檢測出來