Каков будет результат выполнения этого кода: true,false,0 или ошибка? Почему?
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, но внешняя переменная изменится.
#41