javascript - 在 javascript Harmony/ECMAScript 6 中删除或覆盖 const 变量

标签 javascript ecmascript-6

阅读和修改 ECMAScript 6 提供的新功能。

用于编写常量变量的新“const”语句是一个很棒的功能,它为已经很有趣的更新添加了功能。

变量创建为只读,一旦声明就不能被覆盖。

编辑:随之而来的问题出现了,例如,在控制台上测试代码时。两次运行包含 const 定义的脚本会导致错误,中断执行。

如果我想释放那个关键字怎么办?有什么方法可以取消设置或删除变量吗?

我读过 this post这实际上也是一个影响 var 语句的问题,因为创建变量的环境在许多抽象级别上是不同的。

ECMAScript 6 打算如何解决这个问题?

最佳答案

无法重新定义使用 const 声明的变量。

但是,const 是 block 作用域的。要解决您描述的问题,在控制台中测试某些代码时,您所要做的就是将脚本包装在 {} 中:

{ const x = 1; }
{ const x = 2; }

请注意,许多已经支持 const 关键字的浏览器尚不支持 block 范围常量,因此上面的示例在 Chrome 和 Firefox 中将失败(有关更多信息,请参见 Kangax's compatibility table)。

关于javascript - 在 javascript Harmony/ECMAScript 6 中删除或覆盖 const 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27016272/

相关文章:

JavaScript - 使用 ES* 模块优化下载时间

javascript - ES6 const 会影响垃圾回收吗?

javascript - 创建 json 对象以排除未定义的属性

javascript - 我的 Promise 实现是否符合规范?

javascript - 将多个类名添加到元素 D3

javascript - 只有 Javascript 中 for 循环中的最后一次运行有效

javascript - CSS 到 JSON 解析器或转换器

javascript - Backbone.js 回退中哈希后的斜线 - 历史 pushState

javascript - 如何过滤对象数组中的数组?

javascript - 无法使用 lodash 更改对象键值