參考: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 陣列...