Я читаю электронную книгу 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 y не видна, когда она находится вне условного оператора if, чего я ожидаю. Однако, с var, каким-то образом привязка все еще доступна даже вне условного оператора if. Как это работает?
Кроме того, будет ли привязка var доступна вне цикла цикла while?