📜  JavaScript 数组 isArray() 方法(1)

📅  最后修改于: 2023-12-03 15:31:43.767000             🧑  作者: Mango

JavaScript 数组 isArray() 方法

简介

JavaScript 数组对象拥有一个 isArray() 方法,可以用来判断一个变量是否为数组类型。该方法返回一个布尔值,如果变量是数组则返回 true,否则返回 false。该方法可以在任何 JavaScript 环境中使用,包括浏览器和 Node.js。

示例
const arr1 = [1, 2, 3];
console.log(Array.isArray(arr1)); // true

const arr2 = 'string';
console.log(Array.isArray(arr2)); // false

上述代码中,我们首先定义了一个数组 arr1,然后使用 isArray() 方法判断它是否为数组类型,返回的结果为 true

接着我们定义了一个字符串 arr2,使用 isArray() 方法判断它是否为数组类型,返回的结果为 false

参数

该方法需要传入一个参数,即需要判断的变量。如果变量是数组类型,则返回 true,否则返回 false

Array.isArray(variable)

其中 variable 表示需要进行判断的变量。

注意事项

该方法无法判断从父级继承而来的属性,比如一个数组对象的 length 属性,虽然是数组中的属性,但是不能用 isArray() 方法判断它是否为数组类型。如果需要判断一个变量属性是否为数组类型,建议使用 Object.prototype.toString.call() 方法。

const obj = {
  data: [1, 2, 3],
  length: 3
};

console.log(Array.isArray(obj.data)); // true

console.log(Array.isArray(obj.length)); // false

console.log(Object.prototype.toString.call(obj.length) === '[object Array]'); // false

上述代码中,我们首先定义了一个对象 obj,其中包含一个数组属性 data 和一个数字属性 length

使用 isArray() 判断 obj.data 是否为数组类型,返回结果为 true

使用 isArray() 判断 obj.length 是否为数组类型,返回结果为 false,因为 length 属性虽然是数组对象属性,但是不能用 isArray() 判断它是否为数组类型。

使用 Object.prototype.toString.call() 方法判断 obj.length 是否为数组类型,返回结果为 false,因为 length 属性是数字类型,不是数组类型。

因此,我们需要在使用 isArray() 方法的时候注意这一点,在判断属性为数组类型的时候,建议使用 Object.prototype.toString.call() 方法。

结论

JavaScript 数组 isArray() 方法可以方便地判断一个变量是否为数组类型。我们也要注意该方法无法判断从父级继承而来的属性是否为数组类型,如果需要判断变量属性是否为数组类型,建议使用 Object.prototype.toString.call() 方法。