zoukankan      html  css  js  c++  java
  • 一道面试题:怎么判断一个对象是{}

    这个问题有个坑:假如对象的属性是通过Object.defineproperty()定义的,然后设置为不可枚举。

    这种情况下:

    1)Object.keys()不可以获取到不可枚举属性

    2)for in 不可遍历不可枚举属性

    3)JSON.stringify忽略不可枚举属性

    所以上面几种都不可用,而正确的应该是用Reflect.ownKeys()这个方法,这个方法返回一个对象的key数组,且返回自身的而不包含原型链上的,且不管是不是不可枚举。

    如果这个返回空数组那么就可以证明为{},当然需要首先判断是不是对象数据类型。

    也可以用Object.getOwnPropertyNames(),这个返回一个数组。

    我站在山顶看风景!下面是我的家乡!
  • 相关阅读:
    app-授权登录插件配置
    微信公众号-公众号设置-功能设置
    Java变量
    Java数据类型
    计算机存储单元
    Java常量
    k8s
    第一个Java程序
    旋转木马
    tools
  • 原文地址:https://www.cnblogs.com/zhensg123/p/14803114.html
Copyright © 2011-2022 走看看