📌  相关文章
📜  如何检查一个变量是否是 JavaScript 中的一个数组?(1)

📅  最后修改于: 2023-12-03 15:09:11.692000             🧑  作者: Mango

如何检查一个变量是否是 JavaScript 中的一个数组?

在 JavaScript 中,我们可以通过以下几种方式来检查一个变量是否是一个数组。

方法一:使用Array.isArray()方法

Array.isArray() 方法可以返回一个布尔值,表示传递给该方法的参数是否是一个数组。

const arr = [1, 2, 3];
const notArr = 'not an array';

console.log(Array.isArray(arr)); // true
console.log(Array.isArray(notArr)); // false
方法二:使用instanceof关键字

instanceof 关键字可以检查一个对象是否属于某个特定的类。对于数组,可以使用 Array 关键字来检查。

const arr = [1, 2, 3];
const notArr = 'not an array';

console.log(arr instanceof Array); // true
console.log(notArr instanceof Array); // false

需要注意的是,使用 instanceof 关键字来检查数组时,若要检查跨框架数组,则该方法可能不可靠,因为不同框架的数组对象是不同的。

方法三:使用Object.prototype.toString.call()方法

Object.prototype.toString.call()方法可以返回一个描述对象类型的字符串。

对于数组,它返回的字符串应该是 [object Array]

const arr = [1, 2, 3];
const notArr = 'not an array';

console.log(Object.prototype.toString.call(arr)); // "[object Array]"
console.log(Object.prototype.toString.call(notArr)); // "[object String]"

在实际应用中,我们建议使用方法一和方法二来检查数组,因为它们是最常用的、最灵活的方法。

注意:对于不同的数据类型,以上三种方法可能存在一定局限性。因此,若需判断变量数据类型,建议使用更加全面灵活的工具库,比如 Lodash 或 Underscore。