1. 程式人生 > >判斷一個js物件是否是Array

判斷一個js物件是否是Array

今天在做題時遇到這個問題,找答案的時候,發現評論裡大神好多 。

在開發中,我們經常需要判斷某個物件是否為陣列型別,總結判斷某個物件是否是陣列的方法。

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)

參考:https://www.cnblogs.com/fogwind/p/5884684.html