Mar*_*ark 3 javascript declaration let google-chrome-console
我知道 JS 中的 let 不能声明变量两次。但是当我在控制台中尝试以下代码时:
a = 1;
let a = 2;
let a = 3;
.
.
.
let a = 100;
Run Code Online (Sandbox Code Playgroud)
注意:它们是逐行运行的(如下面的屏幕截图所示)。版本是谷歌浏览器91.0.4472.114
它总是有效,没有错误。这真的让我很困惑,为什么它工作得很好?我知道控制台中发生的情况并不代表脚本中发生的情况。但我的问题是为什么它存在于控制台中?这有什么原因吗,或者可能是一个错误?
因为我假设let和const具有相同的声明行为,如果我使用const而不是let,这是毫无疑问的。
b = 1;
const b = 2;
const b = 3; //Uncaught SyntaxError: Identifier 'b' has already been declared
Run Code Online (Sandbox Code Playgroud)
这是 Chrome 的一项明确功能,仅此而已。它正在为您处理事情,以便您在进行x
测试时不会遇到“已定义”的障碍。
控制台现在支持重新声明
let
和class
语句。对于使用控制台试验新 JavaScript 代码的 Web 开发人员来说,无法重新声明是一个常见的烦恼。
编辑:
我刚刚发现即将推出的Chrome 92const
也将添加对重新声明的支持!
这使得开发人员可以将代码复制粘贴到 DevTools 控制台中,以查看其工作原理或进行实验,对代码进行小的更改,并在不刷新页面的情况下重复该过程。以前,如果代码重新
const
声明绑定,DevTools 会抛出语法错误。