1.使用Array.isArray()
方法: 这是最推荐的方法,Array.isArray()
是一个静态方法,用于确定传递的值是否是一个数组。如果变量 arr
是数组,则返回 true
,否则返回 false
。
let arr = [1, 2, 3];
let obj = {};
console.log(Array.isArray(arr)); // true
console.log(Array.isArray(obj)); // false
2.使用instanceof
运算符: instanceof
运算符用于测试构造函数的 prototype
属性是否出现在对象的原型链中的任何位置.这种方法通常也可以判断一个对象是否属于特定的类(如 Array
)。
let arr = [1, 2, 3];
let obj = {};
console.log(arr instanceof Array); // true
console.log(obj instanceof Array); // false
3.使用对象的 constructor
属性: 可以使用对象的 constructor
属性来检查其构造函数是否是 Array
。这种方法通常也可以判断一个对象是否属于特定的类(如 Array
)。
let arr = [1, 2, 3];
let obj = {};
console.log(arr instanceof Array); // true
console.log(obj instanceof Array); // false
4.使用 Object.prototype.toString.call()
方法: 这种方法是利用 JavaScript 提供的内置方法来检查对象的类型。这种方法可以精确地判断对象的类型,适用于所有内置对象和自定义对象。
let arr = [1, 2, 3];
let obj = {};
console.log(Object.prototype.toString.call(arr) === '[object Array]'); // true
console.log(Object.prototype.toString.call(obj) === '[object Array]'); // false
这些方法各有其适用的场景,一般来说,推荐使用 Array.isArray()
方法,因为它是最简单和直观的方式来检查一个变量是否是数组。