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引入的静态方法,专门用于检测值是否为数组类型,不依赖构造函数,且在所有环境下行为一致,因此是推荐的最可靠方式。它能够正确识别数组,无论其创建上下文如何,是目前判断数组类型的首选方法。

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

昵称:
邮箱:
内容: