一道面试题:怎么判断一个对象是{}
作者:互联网
这个问题有个坑:假如对象的属性是通过Object.defineproperty()定义的,然后设置为不可枚举。
这种情况下:
1)Object.keys()不可以获取到不可枚举属性
2)for in 不可遍历不可枚举属性
3)JSON.stringify忽略不可枚举属性
所以上面几种都不可用,而正确的应该是用Reflect.ownKeys()这个方法,这个方法返回一个对象的key数组,且返回自身的而不包含原型链上的,且不管是不是不可枚举。
如果这个的返回空数组那么就可以证明为{},当然需要首先判断是不是对象数据类型。
标签:返回,面试题,对象,Object,一道,数组,不可枚举,属性 来源: https://www.cnblogs.com/zhensg123/p/14803114.html