function confuseReader() {
x = "Guess my scope...";
console.log("Inside the function:", x);
}
confuseReader();
console.log("Outside of function:", x);
Ваш ответ готов? Результат будет выглядеть следующим образом:
Inside the function: Guess my scope...
Outside the function: Guess my scope...
Не закрывайте книгу, сейчас мы все объясним. Давайте посмотрим внимательно: переменная x в функции определена без использования ключевых слов let или var. Ранее она объявлена не была — перед нами весь код программы. JavaScript не видит let или var и решает: «Это, должно быть, глобальная переменная». Несмотря на то что x определяется внутри функции, объявленная внутри функции переменная получает глобальную область видимости и все равно может быть доступна за пределами функции.