关键词

javascript判断一个变量是数组还是对象

判断一个变量是数组还是对象是编写 JavaScript 程序中常见的任务,我们可以使用原生 JavaScript 提供的一些方法来实现这个功能。

方法一:使用 typeof 运算符和 Array.isArray() 方法

在 JavaScript 中,我们可以使用 typeof 运算符来检查一个变量的类型,Array.isArray() 方法用来判断一个变量是否为数组。

var myArray = [1, 2, 3];
var myObject = {name: "Tom", age: 18};

if (typeof myArray === "object" && Array.isArray(myArray)) {
  console.log("myArray is an array.");
} else {
  console.log("myArray is not an array.");
}

if (typeof myObject === "object" && Array.isArray(myObject)) {
  console.log("myObject is an array.");
} else {
  console.log("myObject is not an array.");
}

以上代码中,第一个 if 语句会输出 "myArray is an array.",因为 myArray 是一个数组。而第二个 if 语句会输出 "myObject is not an array.",因为 myObject 是一个对象,不是一个数组。

方法二:使用 Object.prototype.toString() 方法

另一种判断一个变量的类型的方法是使用 Object.prototype.toString() 方法。该方法会返回一个表示变量类型的字符串,我们可以根据该字符串来确定变量是否为数组。

var myArray = [1, 2, 3];
var myObject = {name: "Tom", age: 18};

if (Object.prototype.toString.call(myArray) === '[object Array]') {
  console.log("myArray is an array.");
} else {
  console.log("myArray is not an array.");
}

if (Object.prototype.toString.call(myObject) === '[object Array]') {
  console.log("myObject is an array.");
} else {
  console.log("myObject is not an array.");
}

以上代码中,第一个 if 语句会输出 "myArray is an array.",因为 myArray 是一个数组。而第二个 if 语句会输出 "myObject is not an array.",因为 myObject 是一个对象,不是一个数组。

在常规的变量类型检查中,我们通常倾向于使用方法一。但在某些情况下,比如我们需要支持多重嵌套数组或对象时,使用方法二也许更为可靠。

本文链接:http://task.lmcjl.com/news/11243.html

展开阅读全文