我最近注意到以下代码有效
var x = 10;
var x = 20;
在下面的另一面抛出错误,以重新声明相同的变量
let x = 10;
let x = 20;
下面的链接通过将functional scope
与block scope
作为参考来提供见解。
Why does var allow duplicate declaration but why does const and let not allow duplicate declaration?
var
声明在execution context
中执行,在variableObject中创建一个条目,并且在重复的情况下,重新声明一次又一次指向同一条目/变量。
在let
情况下有何不同?
它还在execution context
中执行吗?
一些很好的链接或详细的解释将不胜感激。