javascript - Javascript:在“执行上下文”中执行重复变量和让变量的区别?
问题描述
我最近注意到下面的代码有效
var x = 10;
var x = 20;
在下面的另一侧,重新声明相同变量会引发错误
let x = 10;
let x = 20;
下面的链接通过保留functional scope
vsblock scope
作为参考来提供见解。
为什么 var 允许重复声明,但为什么 const 和 let 不允许重复声明?
var
声明在 中执行execution context
,在 variableObject 中创建一个条目,并在重复的情况下一次又一次地重新声明指向相同的条目/变量。
在这种情况下有什么不同let
?
不是还在执行execution context
吗?
一些好的链接或详细的解释将不胜感激。
解决方案
推荐阅读
- swift - Image Picker允许编辑功能中的真假区别
- canvas - 在树莓派上安装 Canvas
- javascript - 如何使用 Javascript 从此格式 (2020-09-20 12:25:01) 获取时间戳
- azure - 使用 vnet 集成的 azure 应用服务的静态 ip
- react-native - React 本机 java.lang.string 不能强制转换为 java.lang.double
- blazor-webassembly - 我可以将 Blazor Wasm Standalone 与 Microsoft.Identity.Web 一起使用吗
- pandas - MS Access pyodbc Pandas 数据帧 to_sql 抛出无效的精度值
- javascript - 使用 JS 或 jQuery 在移动设备上更改(添加/删除)CSS 类
- python - 即使设置为写入模式,也没有这样的文件或目录。如何解决这个问题,我该如何正确地做到这一点?
- excel - Excel - 在一列中查找重复项,然后将数量汇总到另一列?