陣列的理解 並且 如何判斷乙個物件是否是陣列

2022-06-07 03:54:08 字數 1126 閱讀 2838

這個問題看似簡單,實際上不簡單。

var arr = [1,2,3]

這裡是字面量方法建立乙個陣列,相當於 var arr = new array(), array是建構函式/類,arr.__proto__ === array.prototype, 像push()方法,其實是array.prototype.push(),所以說arr例項隨想能訪問到push()方法

像 array.isarray() 是 array這個建構函式自身的方法也就是靜態方法,

var arr = [1, 2, 3];

上面這個arr物件,我們可以有很多辦法判斷它是不是陣列

arr.constructor === array; //

true 通過建構函式判斷

arr instanceof array; //

true 通過prototype判斷

array.isarray(arr); //

true 通過array類的靜態方法判斷

object.prototype.tostring.call(arr) === "

[object array]

"; //

true 通過tostring方法判斷

我們現在來建立乙個不是陣列的物件

var arr = [1, 2, 3

];var obj = object.create(arr);

然後我們用上面3個方法判斷一下

obj.constructor === array; //

true 通過建構函式判斷

obj instanceof array; //

true 通過prototype判斷

array.isarray(obj); //

false 通過array類的靜態方法判斷

object.prototype.tostring.call(obj) === "

[object array]

"; //

false 通過tostring方法判斷

只有array.isarray和tostring方法可以正確判斷,所以以後別再用其他方法了~ 

如何準確判斷乙個物件時陣列

var a 1 2,3 instanceof 操作符和物件的 construct 屬性 var arr 1 2,3 1 console.log arr instanceof array true varfun function console.log fun instanceof function ...

判斷乙個物件是陣列還是物件

一 typeof判斷資料型別 判斷陣列跟物件都返回object console.log typeof null object console.log typeof function function console.log typeof 小a string console.log typeof1 n...

Js中如何判斷乙個物件為陣列型別

在說明如何判斷乙個物件為陣列型別前,我們先鞏固下js的資料型別,js一共有六大資料型別 number string object boolean null undefined。js的陣列是無型別的 陣列元素可以是任意型別,並且同乙個陣列中的不同元素也可能有不同的型別。陣列的元素可以是物件或其他陣列,...