在JavaScript中,数组类型(Array)广义上是属于Object类型,因此使用typeof运算符时,返回的结果肯定是object,而不是array。所以,通过typeof运算符无法判断JS变量是否是数组类型(Array)。那还有哪些方法来验证JS变量是否是Array数组类型呢?
冯纪忠雄
不用急,方法很多的!
方法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更好。