代码:
const a = 10
a = 20
alert('a: ' + a)
输出结果为:
a: 10
你能解释为什么语句a = 20
没有抛出错误吗?
答案 0 :(得分:1)
引用文档(MDN):
如果您指定,主要浏览器都不会产生任何通知或错误 常数的另一个值。这种操作的返回值是 分配的新值,但重新分配不成功 仅限Firefox和Chrome(至少从版本20开始)。
由于const
目前只是一个提案,浏览器供应商可以自由地实施他们认为合适的方式。请注意,标准很可能将const
定义为block-scoped(目前它的功能范围是var
和function
)。