JS中怎样判断一个元素是不是对象

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

猜你喜欢

转载自blog.csdn.net/weixin_42604536/article/details/85892564