【发布时间】:2018-07-09 23:15:06
【问题描述】:
const 创建一个块范围的常量。但是你如何创建一个非块范围的常量呢?在 Java 中,这通过 final 关键字起作用。
您不能总是在您想要的级别上定义const。我说的是全局范围内的常量。
【问题讨论】:
-
non-block-scoped是什么意思?你希望它的范围是什么?只需在该级别定义const即可 -
你不能总是在你想要的级别上定义一个常量。我也在谈论一个全局范围内的常量。例如。
const a = "constant"; this.a;//undefined -
查看您评论中的代码示例,您似乎有些误解了 JS 中的作用域。
const和let声明作用域常量/变量(想想 private),它们不会在this上创建属性。 JS 中的this取决于执行上下文,它几乎只是一个与声明的常量/变量没有联系的数据对象。 -
我在这里没有理解任何错误。我的代码示例的要点是,在最高级别定义
const仍不会在全局对象上创建属性,因此它与var关键字不同。我同意,我应该使用window而不是this,但它们在示例的上下文中指的是同一个对象。
标签: javascript scope constants