AFAIK, объявления переменных поднимаются в контексте, в котором они определены, однако, в следующем коде, taken from hereJavascript: Почему, если оператор не оценивает водрузил переменную в функции
var foo = 1;
function bar() {
if (!foo) {
var foo = 10;
}
alert(foo);
}
bar();
if(!foo)
вычисляет true
но Зачем? Я имею в виду var foo
уже существует из этого утверждения var foo = 10
перед тем if(!foo)
оцениваются в контексте Foo в поэтому if(!foo)
должна решает if(!true)
, далее решает if(false)
, что означает, что если блок не должен быть выполнен, но if (!foo)
оценивает верно, следовательно, код внутри, если блок выполняется и предупреждения 10
Может кто-нибудь сказать мне, почему и важно, как оценивается условие if?
Вы меня сбиваете с толку – Mahi
Из-за быстрого сближения ссылки, она объясняется там. – ambs