为什么可以让在浏览器控制台中重复声明变量?
我记得我之前会报错。21 年 chrome 是否基于该 ECMA 规范?
让 a=1
未定义让 a=12
未定义navigator.userAgent
'Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chro
me/93.0.4577.82 Safari/537.36'
这是一个屏幕截图:
为什么可以让在浏览器控制台中重复声明变量?
我记得我之前会报错。21 年 chrome 是否基于该 ECMA 规范?
让 a=1
未定义让 a=12
未定义navigator.userAgent
'Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chro
me/93.0.4577.82 Safari/537.36'
这是一个屏幕截图:
控制台环境有许多奇怪的怪癖。它不像<script>
页面上的标准标签。
其中一个怪癖就是这些。let
它过去在 Chrome 中的方式是,不允许重新声明变量- 你会得到预期的错误,即重新声明是无效的语法。但是从 Chrome 80 左右(2020 年春季)开始,它被更改为 allowed。
当然,您仍然不能let
在标准中重新声明变量<script>
:
let foo = 5;
let foo = 10;
您不能重新声明以前let
在严格模式下声明的变量。请参阅:使用“let”和“var”有什么区别?.