JavaScript怎么判断一个变量是否是对象?
时间: 2024-09-21 13:06:21 浏览: 65
在JavaScript中,判断一个变量是否是对象(包括原始类型的空对象字面量和非函数类的自定义对象)可以采用几种方法。以下是常见的三种检查方式:
1. 使用`typeof`操作符:
```javascript
function isObject(value) {
return typeof value === 'object' && value !== null; // 不包含null或undefined
}
```
2. 判断实例of某个构造函数:
```javascript
function isObjectByConstructor(value) {
return value instanceof Object; // 对象或其原型链上的对象
}
```
3. 使用`instanceof`关键字结合`Object`全局构造函数:
```javascript
function isPlainObject(obj) {
return obj.constructor === Object; // 只适用于常规的JavaScript对象,排除DOM元素等
}
```
注意,对于函数,`typeof`也会返回"function",所以如果你只想检查普通对象,可以进一步排除函数:
```javascript
function isOnlyRegularObject(value) {
return value.constructor === Object && !value.prototype;
}
```
阅读全文