var arr = [1,2,3]; console.log(typeof arr);//'object' 數組的本質是一種特殊的對象,因此返回'object'。typeof運算符只能用來區分原始類型和對象類型,因此沒法具體的檢測出Array
var arr = [1,2,3]; console.log(arr instanceof Array);//true 若是存在不一樣的全局環境,就會存在不一樣版本的Array構造函數,若是從一個框架向另外一個框架傳入一個數組,那麼傳入的數組與在第二個框架中原生建立的數組分別具備各自不一樣的構造函數,這時候使用instanceof檢測就不許確了
經過引用Object的toString()方法來檢查對象的類屬性,對數組而言該屬性的值老是"Array"數組
function type(obj){ return Object.prototype.toString.call(obj).slice(8,-1).toLowerCase(); } console.log(type(arr));//'array'
ECMAScript5新增了Array.isArray()方法框架
console.log(Array.isArray([]));//true