📅  最后修改于: 2023-12-03 15:09:11.692000             🧑  作者: Mango
在 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。