js实现isArray
实现 isArray 的方法
在 JavaScript 中,判断一个变量是否为数组可以通过多种方式实现。以下是几种常见的方法:
使用 Array.isArray()
Array.isArray() 是 JavaScript 内置的方法,用于检测传入的值是否是一个数组。这是最推荐的方式,因为它简单且可靠。
const arr = [1, 2, 3];
console.log(Array.isArray(arr)); // true
const obj = { a: 1 };
console.log(Array.isArray(obj)); // false
使用 instanceof 操作符
instanceof 操作符可以检查一个对象的原型链中是否存在 Array 构造函数。这种方式在大多数情况下有效,但在跨框架或跨窗口环境下可能会失效。
const arr = [1, 2, 3];
console.log(arr instanceof Array); // true
const obj = { a: 1 };
console.log(obj instanceof Array); // false
使用 Object.prototype.toString.call()
通过调用 Object.prototype.toString 方法并检查返回的字符串是否为 [object Array],可以判断变量是否为数组。这种方式在所有环境下都可靠。
const arr = [1, 2, 3];
console.log(Object.prototype.toString.call(arr) === '[object Array]'); // true
const obj = { a: 1 };
console.log(Object.prototype.toString.call(obj) === '[object Array]'); // false
使用 constructor 属性
检查变量的 constructor 属性是否为 Array。这种方式简单,但在某些情况下可能被修改而导致不可靠。

const arr = [1, 2, 3];
console.log(arr.constructor === Array); // true
const obj = { a: 1 };
console.log(obj.constructor === Array); // false
推荐方法
Array.isArray() 是最简单、最可靠的方法,推荐优先使用。其他方法可以作为补充或在特定场景下使用。






