我正在阅读Eloquent JavaScript在线书,但无法理解var
的工作方式。代码如下:
let x = 10;
if (true) {
let y = 20;
var z = 30;
console.log(x + y + z);
// → 60
}
// y is not visible here
console.log(x + z);
// → 40
对于let
,当它在条件语句if
之外时,y是不可见的,这正是我所期望的。但是,使用var
,即使在条件语句if
之外,仍然可以以某种方式访问绑定。如何运作?
此外,是否可以在var
循环块之外访问while
绑定?