Всем привет!
В видеокурсе Ильи, был примерчик примерно такого содержания
var name = "Вася";
function whatIsName() {
alert(name);
var name = "Петя";
}
whatIsName(); // здесь получаем undefined
Здесь все понятно почему.
Если var name = "Петя"; объявить до Алерта, тогда получим "Петя"
А не понятно следующее:
Убираем эту строку var name = "Петя"; из функции.
Итого у нас есть:
1. Глобальная переменная name
2. Функция декларейшн
3. Результат в алерте "Вася"
Вопросы:
почему если объявить нейм=вася после функции, результат не undefined, а тоже Вася? переменная ведь проинициализировалась и находится с undefined, и значение попадает уже после функции как и было с Петей
function whatIsName() {
alert(name);
// var name = "Петя";
}
whatIsName(); // ВАСЯ
var name = "Вася";
var name = "Вася";
function whatIsName() {
alert(name);
// var name = "Петя";
}
whatIsName(); // ВАСЯ