Посмотрите на следующий фрагмент кода:Неопределенная переменная в функции
var fruit = "Orange";
echoThis();
function echoThis() {
alert(fruit);
var fruit = "Apple";
}
Когда я запускаю этот фрагмент кода, предупреждение о fruit
является undefined
. Зачем?
Сначала я думал, что это имеет какое-то подъемным, что в Funciton, двигатель JS «поднимает» все var
объявления к вершине или что-то, но тогда я бы ожидать оповещения для отображения Apple
, не undefined
.
Возможно, существует некоторое элементарное поведение JS, о котором я не знаю. Кто-нибудь должен объяснить?
JS скрипку: https://jsfiddle.net/z37230c9/
Вы должны передать плод в качестве аргумента функции. Или сделайте свою переменную «фрукты» публичной, удалив «var» –
Я знаю, как я могу заставить ее работать. Теперь я просто пытаюсь понять, почему он ведет себя так. – Weblurk