如果要判断一个变量是否为数组或对象,可以使用JavaScript中的typeof
运算符和Array.isArray()
方法。下面详细讲解JavaScript中判断变量是数组还是对象的攻略。
使用typeof运算符
- 使用
typeof
运算符判断变量类型
使用typeof
运算符可以返回一个字符串,表示变量类型。如果变量是数组,返回的类型为object
,如果变量是对象,返回的类型也是object
。因此,不能仅使用typeof
判断变量类型。
typeof [1, 2, 3] // "object"
typeof {name: "张三", age: 20} // "object"
- 判断数组类型
判断数组类型可以使用以下方法:
- 使用
Array.isArray()
方法判断是否为数组。Array.isArray()
方法返回布尔值,如果是数组返回true
,否则返回false
。
Array.isArray([1, 2, 3]) // true
Array.isArray({name: "张三", age: 20}) // false
- 判断对象是否具有
length
属性以及其属性值类型是否为number
。
var arr = [1, 2, 3];
var obj = {name: "张三", age: 20};
arr.length && typeof arr.length === "number" // true
obj.length && typeof obj.length === "number" // false
示例说明
下面通过两个示例详细说明如何判断一个变量是数组还是对象。
示例一
var arr = [1, 2, 3];
var obj = {name: "张三", age: 20};
if (Array.isArray(arr)) {
console.log("arr is an array");
} else {
console.log("arr is an object");
}
if (Array.isArray(obj)) {
console.log("obj is an array");
} else {
console.log("obj is an object");
}
结果输出:
arr is an array
obj is an object
解释:使用Array.isArray()
判断变量是否为数组。arr
是一个数组,而obj
是一个对象,因此第一个判断输出数组,第二个判断输出对象。
示例二
var arr = [1, 2, 3];
var obj = {name: "张三", age: 20};
if (arr.length && typeof arr.length === "number") {
console.log("arr is an array");
} else {
console.log("arr is an object");
}
if (obj.length && typeof obj.length === "number") {
console.log("obj is an array");
} else {
console.log("obj is an object");
}
结果输出:
arr is an array
obj is an object
解释:判断对象是否具有length
属性以及其属性值类型是否为number
。arr
是一个数组,其具有length
属性且属性值类型为number
,因此第一个判断输出数组,第二个判断输出对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript中判断变量是数组还是对象(array还是object) - Python技术站