为什么Chrome浏览器控制台允许重复使用let声明变量?
问题解答
你观察到的Chrome控制台重复使用let声明同一变量不报错的特性,基于**ECMA-262 第11版(即ES2020)**规范实现。
需要注意的是,该规则仅针对交互式REPL(如浏览器开发者控制台、Node.js终端)场景做适配,常规的脚本、模块执行环境下,重复let声明依然会抛出语法错误,核心约束没有变化。
你提供的控制台运行记录如下:
let a=1 // 输出:undefined let a=12 // 输出:undefined navigator.userAgent // 输出:'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'
如果把上述代码放在普通HTML的<script>标签中运行,仍然会抛出Uncaught SyntaxError: Identifier 'a' has already been declared错误。
内容的提问来源于stack exchange,提问作者andrew yin
相关产品推荐
相关产品推荐

