JavaScript中如何正确判断一个变量是否为数组?
JavaScript中如何正确判断一个变量是否为数组?
回答:
可以使用 Array.isArray() 方法来判断一个变量是否为数组。
console.log(Array.isArray([1, 2, 3])); // true
console.log(Array.isArray('hello')); // false
console.log(Array.isArray({})); // false
console.log(Array.isArray(null)); // false
解析:
在JavaScript中,数组本质上是对象,因此使用 typeof 操作符无法准确判断数组:
typeof [1, 2, 3]; // "object"
这会导致误判。虽然可以通过 instanceof Array 来判断:
[1, 2, 3] instanceof Array; // true
但在跨iframe等场景下,由于不同执行上下文中的Array构造函数不同,instanceof 可能返回 false,存在可靠性问题。
而 Array.isArray() 是ES5引入的静态方法,专门用于检测值是否为数组类型,不依赖构造函数,且在所有环境下行为一致,因此是推荐的最可靠方式。它能够正确识别数组,无论其创建上下文如何,是目前判断数组类型的首选方法。

发表评论 (审核通过后显示评论):