如何验证JavaScript变量是否为Array数组类型?

在JavaScript中,数组类型(Array)广义上是属于Object类型,因此使用typeof运算符时,返回的结果肯定是object,而不是array。所以,通过typeof运算符无法判断JS变量是否是数组类型(Array)。那还有哪些方法来验证JS变量是否是Array数组类型呢?

喜欢这个问题 | 分享 | 新建回答

回答

冯纪忠雄

Dec 10, 2018
1 赞

不用急,方法很多的!


方法1:使用instanceof运算符测试一下

var a = [ "A", "B", "C" ];
a instanceof Array;   // 会返回true


方法2:自己做一个isArray函数来验证测试一下

function isArray(array_obj) {
  return array_obj.constructor.toString().indexOf("Array") > -1;
}

var a = [ "A", "B", "C" ];
isArray( a );         // 会返回true


方法3:ECMAScript 5中已经提供了Array.isArray()来验证变量是否为数组类型测试一下

var a = [ "A", "B", "C" ];
Array.isArray( a );   // 会返回true


更推荐方法1,方法1的兼容性比方法3更好。