В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
bayarma58
bayarma58
28.03.2021 01:57 •  Информатика

JavaScript. Что выйдет, если вызов Say('Вася'); стоит в самом начале, в первой строке следующего кода:
say ('Вася'); // Не будет ли ошибки?
var phrase = 'Привет';
function say (name) {
alert( name + " , " + phrase );
}
Что выведет?​

Показать ответ
Ответ:
ekserukhova16
ekserukhova16
15.10.2020 15:33

Ошибки не будет, выведет "Вася , undefined".

Объяснение:

Функция say вызывается до объявления phrase, поэтому внутри функции переменная phrase не будет прочитана (так как её ещё нет).

Если объявить phrase до вызова say, то alert выведет "Вася , Привет".

Пример работы:


JavaScript. Что выйдет, если вызов Say('Вася'); стоит в самом начале, в первой строке следующего код
JavaScript. Что выйдет, если вызов Say('Вася'); стоит в самом начале, в первой строке следующего код
0,0(0 оценок)
Ответ:
KerimovaLuiza919
KerimovaLuiza919
15.10.2020 15:33

Ошибки не будет, но функция выведет   Вася , undefined

Объяснение:

Работает это так: JS объявляет переменную, только когда добирается до нее по ходу выполнения кода. Т.е., когда выполнялась функция say, переменная phrase еще не была объявлена и имела значение undefined.

С другой стороны, ошибки не будет, так как функция say корректно выполнится, несмотря на более позднее объявление в коде. Это происходит из-за того, что мы имеем дело с так называемым Function Declaration, который объявляется не в момент, когда до него доходит код, а сразу по запуску программы.

На скриншоте показан пример работы такого выражения.

Если хочешь лучше разобраться в этой теме - вот ссылка на подробную статью:

https://learn.javascript.ru/function-expressions


JavaScript. Что выйдет, если вызов Say('Вася'); стоит в самом начале, в первой строке следующего код
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота