JS代码校验一个变量是否为对象
时间: 2024-03-17 17:39:52 浏览: 57
Javascript中判断变量是数组还是对象(array还是object)
可以使用typeof操作符来判断一个变量是否为对象。但是需要注意的是,typeof操作符对于数组、null、Date等特殊类型的数据也会返回"object",因此需要进行一些特殊处理。以下是示例代码:
```
let obj = {a: 1, b: 2};
let arr = [1, 2, 3];
let date = new Date();
let nullObj = null;
console.log(typeof obj === 'object'); // 输出 true
console.log(typeof arr === 'object'); // 输出 true
console.log(typeof date === 'object'); // 输出 true
console.log(typeof nullObj === 'object'); // 输出 false
```
如果需要严格判断一个变量是否为普通对象,可以使用以下代码:
```
function isPlainObject(obj) {
if (typeof obj !== 'object' || obj === null) {
return false;
}
const proto = Object.getPrototypeOf(obj);
return proto === null || proto === Object.prototype;
}
let obj = {a: 1, b: 2};
let arr = [1, 2, 3];
let date = new Date();
let nullObj = null;
console.log(isPlainObject(obj)); // 输出 true
console.log(isPlainObject(arr)); // 输出 false
console.log(isPlainObject(date)); // 输出 false
console.log(isPlainObject(nullObj)); // 输出 false
```
上述代码中,isPlainObject()方法会先判断传入的参数是否为object类型,如果不是,则直接返回false。然后获取传入对象的原型对象,如果原型对象为null或者是Object.prototype,则说明该对象是普通对象,返回true,否则返回false。
阅读全文