JS array陣列檢測方式解析
阿新 • • 發佈:2020-05-20
typeof
var arr = [1,2,3]; console.log(typeof arr);//'object'
陣列的本質是一種特殊的物件,所以返回'object'。typeof運算子只能用來區分原始型別和物件型別,所以無法具體的檢測出Array
instanceof
var arr = [1,3]; console.log(arr instanceof Array);//true
如果存在不同的全域性環境,就會存在不同版本的Array建構函式,如果從一個框架向另一個框架傳入一個數組,那麼傳入的陣列與在第二個框架中原生建立的陣列分別具有各自不同的建構函式,這時候使用instanceof檢測就不準確了
toString
通過引用Object的toString()方法來檢查物件的類屬性,對陣列而言該屬性的值總是"Array"
function type(obj){ return Object.prototype.toString.call(obj).slice(8,-1).toLowerCase(); } console.log(type(arr));//'array'
isArray
ECMAScript5新增了Array.isArray()方法
console.log(Array.isArray([]));//true
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。