js 判断是不是数组
时间: 2024-12-14 13:13:13 浏览: 12
在JavaScript中,可以使用几种方法来判断一个变量是否为数组:
1. **Array.isArray()**:这是最直接也最推荐的方法,它检查给定的值是否为真正的JavaScript数组。例如:
```javascript
let arr = [1, 2, 3];
if(Array.isArray(arr)) {
console.log('arr is an array');
}
```
2. **Object.prototype.toString.call()**: 这种方法利用了所有JavaScript内置类型的toString方法返回值都有特定格式,其中数组的类型是"[object Array]"。代码如下:
```javascript
function isArray(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
}
```
3. **constructor属性**:虽然不是所有新创建的数组都会有这个属性,但在大多数现代浏览器和Node.js环境中,检查`instanceof Array`也是可行的,因为大部分数组实例都会继承自`Array`构造函数:
```javascript
function isArray(obj) {
return obj.constructor instanceof Array;
}
```
4. **利用扩展运算符...**:如果尝试将变量扩展(spread语法),如果抛出错误则是数组,否则不是。这适用于ES6及以后版本:
```javascript
function isArray(obj) {
try {
[...obj];
return true;
} catch (_) {
return false;
}
}
```
阅读全文