В какую переменную будет присвоено значение?
важность: 5
Каков будет результат выполнения этого кода?
var value = 0;
function f() {
if (1) {
value = true;
} else {
var value = false;
}
alert( value );
}
f();
Изменится ли внешняя переменная value
?
P.S. Какими будут ответы, если из строки var value = false
убрать var
?
Результатом будет true
, т.к. var
обработается и переменная будет создана до выполнения кода.
Соответственно, присвоение value=true
сработает на локальной переменной, и alert
выведет true
.
Внешняя переменная не изменится.
P.S. Если var
нет, то в функции переменная не будет найдена. Интерпретатор обратится за ней в window
и изменит её там.
Так что без var
результат будет также true
, но внешняя переменная изменится.