这是了解Java Script中变量类型的更好方法

时间:2016-02-02 12:22:41

标签: javascript

如果我有一个变量var a,我想检查它是否是数组类型我可以做

a.constructor === Array

,或者

a instanceof Array

哪种方式更好?为什么?

3 个答案:

答案 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)