JS中,判断对象类型时存在一个bug,那就是null类型也是object,那么如何精准判断一个元素是对象呢。
- 方法一:typeof
function isObj(val) {
return val !== null && typeof(val) === 'object';
}
- 方法二: instanceof
- instanceof,用来判断实例是否属于某种类型
var obj = {};
console.log(obj instanceof Object); // true;
var objNull = null;
console.log(objNull instanceof Object); // false;
- 方法三:constructor,判断实例的构造函数是否为Object
var obj = {};
console.log(obj.constructor === Object) // true
var objNull = null;
console.log(obj.constructor === Object) // Error