javascript-tutorial/ru.javascript.info

[Баг]:

Hunter-137 opened this issue · 2 comments

Описание

В статье про замыкание в задаче про if есть код:

let phrase = "Hello";

if (true) {
  let user = "John";

  function sayHi() {
    alert(`${phrase}, ${user}`);
  }
}

sayHi();

Проблема в том, что данный код в консоли браузера и в компиляторе js отображает не ошибку, а фразу "Hello, John".

Как воспроизвести?

Для наглядности:

  1. Запустите код по кнопке "Выполнить" на сайте учебника — alert выдаст ошибку;
  2. Запустите код в консоли браузера Chrome — alert выдаст Hello, John
  3. Запустите код в компиляторе js — alert выдаст Hellom John

Браузер

У меня воспроизводится этот баг в Chrome Версия 122.0.6261.129 (Официальная сборка), (64 бит)

Здравствуйте.

Все примеры кода в учебнике запускаются в строгом режиме "use strict" (за исключением случаев, когда заранее упомянуто иное), об этом сказано в главе «Строгий режим — "use strict"». В строгом режиме данный код выводит ошибку, в нестрогом — нет.

Здравствуйте! Понял, спасибо большое за объяснение.