Имея следующий цикл for:
for (var i = 0; i < 3; ++i) {
console.log(i, p);
var p;
p = 42;
}
Я ожидал, что вывод будет:
0 undefined
0 undefined
0 undefined
Но на самом деле вывод такой:
0 undefined
0 42
0 42
Поскольку мы используем var p
(для повторного объявления p
) в следующей строке, почему p
не определено (всегда) в строке console.log
?
there is no such thing as block level scope in js.
- person Bharadwaj   schedule 14.01.2016let
. - person Ionică Bizău   schedule 14.01.2016var p;
значениеp
не изменилось. - person   schedule 14.01.2016