js array數組檢測方式

typeof

var arr = [1,2,3];
console.log(typeof arr);//'object'
數組的本質是一種特殊的對象,因此返回'object'。typeof運算符只能用來區分原始類型和對象類型,因此沒法具體的檢測出Array

instanceof

var arr = [1,2,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
相關文章
相關標籤/搜索