[Баг]: Неточный ответ в задаче "Функция внутри if"
s0nought opened this issue · 1 comments
s0nought commented
Описание
Условие:
Посмотрите на код. Какой будет результат у вызова на последней строке?
let phrase = "Hello";
if (true) {
let user = "John";
function sayHi() {
alert(`${phrase}, ${user}`);
}
}
sayHi();
Ответ:
Результатом будет ошибка.
Функция sayHi объявлена внутри if, так что она живёт только внутри этого блока. Снаружи нет sayHi.
В строгом режиме - ошибка.
Без - нет.
Как воспроизвести?
- Открыть https://learn.javascript.ru/task/function-in-if
- Скопировать код задачи
- Открыть новую вкладку с DevTools на Console
- Вставить из буфера обмена и нажать Enter
Браузер
Chrome 125.0.6422.113
Firefox 126.0.1
Alexandre887 commented
Все примеры кода в учебнике подразумевают использование строгого режима в них (за редкими исключениями, но тогда есть пояснения к таким примерам). Об этом написано в самом начале, в статье «Строгий режим — "use strict"». Однако, поскольку это не первая Issue конкретно по этой задаче, добавляю уточнение.


