Вот что-то интересное, которое я нашел во время обучения в javascript.
код
var foo = "This is a global variable.";
var bar = function() {
alert(foo);
foo = "Value has been modified";
}
bar();
alert(foo);
Это дает нормальный ответ, который, по вашему мнению, вы получите, но если я изменю одну строку:
от
foo = "Value has been modified";
в
var foo = "Value has been modified";
Я получаю значение undefined для foo, почему это? Поскольку функция является глобальной областью, почему она не принимает ключевое слово var перед этим?
Edit
Теперь я понимаю, что то, что происходит в var foo
на панели функций, будет иметь наибольшее значение из-за ключевого слова var и будет поднято, но оно будет поднято без значение.