📅  最后修改于: 2023-12-03 15:31:43.767000             🧑  作者: Mango
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()
方法。