判斷一個js物件是否是Array
阿新 • • 發佈:2018-12-20
今天在做題時遇到這個問題,找答案的時候,發現評論裡大神好多 。
在開發中,我們經常需要判斷某個物件是否為陣列型別,總結判斷某個物件是否是陣列的方法。
1.typeof 操作符
對於Function, String, Number ,Undefined 等幾種型別的物件來說,他完全可以勝任,但是為Array時,
console.log(typeof([1,2,3])) //object
顯然這個答案並不是我們想要的。
2. instanceof 操作符
JavaScript中instanceof運算子會返回一個 Boolean 值,指出物件是否是特定類的一個例項。
語法: A instanceof B,意思是物件A的原型是否是B.prototype。如果是,返回true,如果不是,返回false。
使用方法:result = object instanceof class
var arr = [1,2,3,4,5];
console.log(arr instanceof Array); //true
看樣子我們今天討論的問題已經得到了解答,但事實上在多個frame中穿梭就會產生大問題了。
3.Array.isArray( )
使用ECMAScript 5新增的Array.isArray()方法。這個方法的作用就是確定某個值到底是不是陣列,而不管它到底是在哪個全域性執行環境中建立的。
4.使用Object.prototype上的原生toString()方法
使用方法:Object.prototype.toString.call(value)