如果我有一个变量var a,我想检查它是否是数组类型我可以做
a.constructor === Array
,或者
a instanceof Array
哪种方式更好?为什么?
答案 0 :(得分:0)
查看Array.isArray()功能:
Array.isArray(a);
答案 1 :(得分:0)
if(typeof a === 'object' && Array.isArray(a)) {
//its array
}
更新:差异
var a = Object.create(Array.prototype);
alert(a instanceof Array); //TRUE
alert(a.constructor === Array); //TRUE
if (typeof a === 'object' && Array.isArray(a)) { //FALSE
alert(true);
}
else {
alert(false);
}
然后你做
var a = new Array(); // or var a = []; etc
alert(a instanceof Array); //TRUE
alert(a.constructor === Array); //TRUE
if (typeof a === 'object' && Array.isArray(a)) { //TRUE
alert(true);
}
else {
alert(false);
}
答案 2 :(得分:-1)
要在
下面返回变量类型的用途typeof(a)