1

我正在学习 ES6 中引入的替代变量声明。现在,我了解到 'let' 变量声明是块范围的,虽然它可以更新,但不能在同一范围内重新声明。

我的第一个问题是:以上信息是真的吗?我正在阅读 2020 年 4 月 2 日的一篇文章。情况可能已经改变。

我的第二个问题是:如果上述信息属实,那么当我运行时,我的 Chrome 控制台是如何出现的

let greeting = 'hello';

以下行我重新声明它,例如

let greeting = 'say hi now';

该值更改为'say hi now',并且没有报告错误。

我认为这与行尾的分号有关,但不确定。这里只是一个JS noobie。谢谢!

4

1 回答 1

5

这是谷歌浏览器特有的功能

支持控制台中的 let 和 class 重新声明

控制台现在支持let和语句的重新class声明。对于使用控制台来试验新 JavaScript 代码的 Web 开发人员来说,无法重新声明是一个常见的烦恼。

在实验中,我发现 IE 11 和 Edge 的行为与 Chrome 相同,分别键入每个命令不会产生错误,但在单个评估中执行两者会产生错误。

另请参阅https://bugs.chromium.org/p/chromium/issues/detail?id=1004193


其他实验表明 Firefox 和 NodeJS REPL 不提供这样的功能。

于 2020-10-28T23:08:38.337 回答