跳到主要内容

Javascript 怎样判断array 和 object ?

参考答案:

在JavaScript中,您可以使用Array.isArray()函数来检查一个变量是否是数组,以及使用typeof操作符来检查一个变量是否是对象。

以下是一些示例:

let arr = [1, 2, 3, 4];
let obj = {a: 1, b: 2};

console.log(Array.isArray(arr)); // 输出:true
console.log(Array.isArray(obj)); // 输出:false

console.log(typeof arr); // 输出:"object"
console.log(typeof obj); // 输出:"object"

需要注意的是,typeof操作符对所有数组都返回"object",因为数组在JavaScript中本质上也是对象。如果你想要更精确地判断一个对象是否是数组,那么应该使用Array.isArray()

如果你想要检查一个变量是否是普通的对象(非数组、函数等),你可以使用instanceof操作符:

let obj = {a: 1, b: 2};
let arr = [1, 2, 3, 4];
let func = function() {};

console.log(obj instanceof Object); // 输出:true
console.log(arr instanceof Object); // 输出:true
console.log(func instanceof Object); // 输出:true

但请注意,instanceof操作符可能受到JavaScript执行环境的影响,例如在iframe或window之间。另外,如果对象是通过Object.create(null)创建的,那么instanceof会返回false,即使它仍然是一个对象。

因此,最安全的做法可能是结合使用Array.isArray()typeof,以及检查对象是否具有预期的属性或方法,以确定其类型。