В функции foo
переменная b
недоступна вне оператора if
, а переменная c
недоступна вне while
.
Причина этого в том, что let
объявленные переменные имеют область видимости блока.
Например, следующее log(b)
приведет к b is undefined
:
function foo() {
var a = 1;
if (a >= 1) {
let b = 2;
while (b < 5) {
let c = b*2;
b++;
console.log(a + b);
}
}
console.log(b);
}