Avatar ·

如何在 JavaScript 中检查变量是否为对象?

大家好!我是 JavaScript 新手,在检查数据类型时遇到了问题。我需要编写一个函数,它接受一个参数并检查它是否为对象(不是数组,不是 null,不是原始类型)。 我尝试使用 `typeof`,但它对数组和 `null` 返回 `"object"`,这不符合我的需求。示例如下: ```javascript function isObject(value) { return typeof value === 'object'; } console.log(isObject({})); // true — 正确 console.log(isObject([])); // true — 但应该是 false,这是数组 console.log(isObject(null)); // true — 但应该是 false,null 不是对象 console.log(isObject(function(){})); // false — 这是函数,也不应被视为对象 ``` 我尝试添加 `Array.isArray()` 检查,但这不能解决 `null` 的问题。我还阅读了关于 `instanceof Object` 的内容,但它对 `null` 也不起作用,并且可能对来自其他框架(如 iframe)的对象产生误报。 请告诉我如何正确且一