JS有哪些判斷是否是陣列的方法?

2021-10-24 05:06:16 字數 1177 閱讀 1156

參考:js判斷是否是陣列的四種做法

1、instanceof

let a = ;

a instanceof array; //true

instanceof運算子檢測array.prototype屬性是否存在於變數a的原型鏈上.。

存在問題:

prototype屬性是可以修改的,所以並不是最初判斷為true就一定永遠為真

當我們的指令碼擁有多個全域性環境,例如html中擁有多個iframe物件,不同的全域性環境會擁有自己的array.prototype屬性,array.prototype !== window.frames[0].array.prototype

2、constructor

let a = ;

a.constructor === array // true

存在問題:

這種判斷也會存在多個全域性環境的問題,導致的問題與instanceof相同。

3、object.prototype.tostring.call()

object.prototype.tostring().call()可以獲取到物件的不同型別,例如:

let a = [1,2,3]

object.prototype.tostring.call(a) === '[object array]';//true

//檢驗是否是函式

let a = function () {};

object.prototype.tostring.call(a) === '[object function]';//true

//檢驗是否是數字

let b = 1;

object.prototype.tostring.call(a) === '[object number]';//true

甚至對於多全域性環境時,object.prototype.tostring().call()也能符合預期處理判斷。

4、array.isarray() (最推薦)

let a = [1, 2, 3]

array.isarray(a) // true;

有什麼方法可以判斷是否是陣列

typeof 返回資料型別 表示式返回值 typeof undefined undefined typeof null object typeof true boolean typeof 123 number typeof abc string typeof function function ty...

js判斷是否是陣列,變數是否存在

let arr 1 方法一 isprototypeof 函式 用於指示物件是否存在於乙個物件的原型鏈中。console.log array.prototype.isprototypeof arr true 方法二 instanceof 變數 instanceof 型別 console.log arr...

js 陣列有哪些常用方法

1 push 向陣列的末尾新增乙個或更多元素,並返回新的長度。2 pop 刪除並返回陣列的最後乙個元素 3 shift 刪除並返回陣列的第乙個元素 4 concat 連線兩個或更多的陣列,並返回結果。5 join 把陣列的所有元素鏈結成乙個字串。元素通過指定的分隔符進行分隔。6 reverse 陣列...