if (!foo) {
var foo = 10;
}
alert(foo);
}
bar();
Кто-то может мне объяснить почему интерпритатор не взял переменную из глобальной области видивимости в участке кода ниже? Потому-что весь мой предудущий опыт говорил мне о том, что если мы не находим переменную в локальном окружении, то идем выше и ищем там, следуя принципу протатипного наследования. И вроде как бы по логике 1 в условие должна была конвертироваться в TRUE и по идее мы не должны были войти в условие, но отлатчик не ищет ее в родителе а сразу присваивает переменной в условии UNDEFINED, конвертирует и выполняет. Что в моей парадигме понимания данного участка кода работает не так?
попробуй var убрать в функции
объявление var внутри функции - сразу поднимает foo функции наверх со значением undefined
хм, так и не разобрался ?
Этот вопрос уже был вчера
Обсуждают сегодня