Задать вопрос
@OrdeO
just......newbie

Почему функция работает таким образом?

Объясните пожалуйста подробно новичку, почему функция выводит Вася, undefined
say('Вася');

var phrase = 'Привет';

function say(name) {
    console.log( name + ", " + phrase );
}


почему функция не видит переменную phrase
  • Вопрос задан
  • 137 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
tsepen
@tsepen
Frontend developer
Потому что ты присваиваешь значение переменной phrase после того как вызвал функцию, поменяй местами вызов функции и объявление переменной и все заработает
Ответ написан
potapchino
@potapchino
потому что по сути ваш код выглядит на самом деле вот так:
var phrase;

function say(name) {
    console.log( name + ", " + phrase );
}

say('Вася');

phrase = 'Привет';
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Потому что hoisting.

Вынесите phrase выше, чем вызов функции, и все будет нормально.
Ответ написан
Комментировать
ellenripley4
@ellenripley4
Любитель тяжелой музыки и фронтэнда
Функция не знает, что такое phrase, передайте эту переменную тоже в качестве параметра.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы