【问题标题】:Why Math.PI is flagged non-enumerable?为什么 Math.PI 被标记为不可枚举?
【发布时间】:2019-03-24 22:14:03
【问题描述】:

我执行了一小段代码:

 Object.getOwnPropertyDescriptor(Math, 'PI');

输出是 {值:3.141592653589793,可写:false,可枚举:false,可配置:false}

Math.PI 将可写标志设置为 false 是有道理的,因为它是一个常量,不应更改。为了使可写标志不可更改,可配置标志也设置为 false。但是为什么可枚举标志设置为假?为什么不应该枚举?

【问题讨论】:

  • 好吧,enumerable 属性必须具有一定的价值,我看不出它是可枚举或不可枚举的特殊原因。基本上,您通常根本不会枚举 Math 对象,因此该值有些随机(没有任何原因),或者当没有特别的理由使其可枚举时,您将其设为不可枚举。

标签: javascript browser ecmascript-6 ecmascript-5


【解决方案1】:

实际上Math 的所有属性都是不可枚举的。那可能是因为:

  for(const prop of Math) {
   console.log(prop);
  }

没什么意义。

【讨论】:

    猜你喜欢
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 2017-12-05
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    相关资源
    最近更新 更多