测试变量是否为数组的最佳方法

Nai*_*gel 1 javascript

可能重复:
如何检测变量是否为数组

当我需要测试变量是否是一个数组时(例如函数中的输入参数可能是对象或数组)我通常使用这段代码

typeof(myVar) === 'object' && myVar.length !== undefined;
Run Code Online (Sandbox Code Playgroud)

这是正确的方法,还是有更有效的方法,考虑到即使 myVar instanceof Array 速度更快,也应该避免因iframe问题而避免?

Jon*_*ski 6

Array.isArray现在可以使用ECMAScript 5,因此您可以将它与polyfill一起用于旧版浏览器:

if(!Array.isArray) {
  Array.isArray = function (vArg) {
    return Object.prototype.toString.call(vArg) === "[object Array]";
  };
}

Array.isArray(myVar);
Run Code Online (Sandbox Code Playgroud)