不可以用這些方法
1、typeof方法
Array繼承與Object钧唐,所以typeof 會直接返回object溪烤,所以不可以用typeof方法來檢測
2县昂、instanceof
instanceof 表面上看確實是返回了true邢疙,但其實并不可靠棍弄。原因是Array實質(zhì)是一個引用,用instanceof方法(包括下面的constructor方法)都是利用和引用地址進行比較的方法來確定的疟游,但是在frame嵌套的情況下呼畸,每一個Array的引用地址都是不同的,比較起來結(jié)果也是不確定的颁虐,所以這種方法有其局限性蛮原。
3、constructor
同2
//測試代碼(與輸出結(jié)果一一對應(yīng))
var list = [1,2,3]
console.log(typeof list);
console.log(list instanceof Array);
console.log(list.constructor);
輸出結(jié)果
可靠的檢測數(shù)組的方式
1另绩、利用object的tostring方法
var list = [1,2,3]
console.log(Object.prototype.toString.call(list)); //[object Array]
2儒陨、利用ES6的Array.isArray()方法
var list = [1,2,3];
Array.isArray(list); //true