判断一个变量是数组还是对象是编写 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 是一个对象,不是一个数组。
在常规的变量类型检查中,我们通常倾向于使用方法一。但在某些情况下,比如我们需要支持多重嵌套数组或对象时,使用方法二也许更为可靠。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript判断一个变量是数组还是对象 - Python技术站