js如何判断是否是数组
原创JavaScript中判断是否是数组的方法
在JavaScript中,我们需要时常检查一个变量是否为数组,以便正确地处理和操作数据。这里我们将介绍几种常见的方法来判断一个变量是否为数组。
1. 使用Array.isArray()方法
Array.isArray() 是最直接且推荐的行为来判断一个对象是否为数组。这个方法是ES5引入的,它会返回一个布尔值,如果变量是数组则返回true,否则返回false。
```javascript
function isArray(variable) {
return Array.isArray(variable);
}
let arr = [1, 2, 3];
console.log(isArray(arr)); // 输出: true
let notArr = "not an array";
console.log(isArray(notArr)); // 输出: false
```
2. 判断对象原型
在旧版本的JavaScript中,可以检查一个对象的`[[Class]]`属性或者`toString()`方法来判断,但这并不是可靠的方法,由于它们大概会被改变。以下是示例:
```javascript
function isOldArrayCheck(variable) {
return Object.prototype.toString.call(variable) === '[object Array]';
}
let arr = [1, 2, 3];
console.log(isOldArrayCheck(arr)); // 输出: true
let notArr = "not an array";
console.log(isOldArrayCheck(notArr)); // 输出: false
```
3. 判断实例构造函数
还可以通过检查变量的`constructor`属性来判断,但同样要注意,这种方法不保证导致的确切性,由于构造函数大概会被修改或重写。
```javascript
function isConstructorCheck(variable) {
return variable.constructor === Array;
}
let arr = [1, 2, 3];
console.log(isConstructorCheck(arr)); // 输出: true
let notArr = "not an array";
console.log(isConstructorCheck(notArr)); // 输出: false
```
总结
在现代JavaScript中,推荐使用`Array.isArray()`方法来判断一个变量是否为数组,由于它是最直接且可靠的。其他方法大概存在兼容性问题,不建议在生产环境中使用。