我了解 let
和 var
的 block 与函数作用域(或者我认为我了解)。最近我遇到了一些在函数范围内使用 let
的 JavaScript,我认为它等同于使用 var
,例如:
function xyz ( abc ) {
let mno = abc - 1; /* or whatever */
...
}
那和在那里使用 var
之间有什么功能上的区别吗?或者它只是一种风格上的东西?
请您参考如下方法:
函数范围内的一个区别是 temporal dead zone如果您尝试在 let
定义之前引用它,就会发生这种情况:
function example() {
console.log(a); // undefined
console.log(b); // ReferenceError: b is not defined
var a = 1;
let b = 2;
}