Почему я получаю сообщение об ошибке при создании функции, а не при создании переменной? - PullRequest
0 голосов
/ 08 июля 2020

Не могли бы вы объяснить, почему следующий код выдает ошибку (только в строгом режиме)?

'use strict';


name = 'Adam';
console.log(name);

doSomething = function() {};

КОНСОЛЬ:

Adam

ReferenceError: doSomething is not defined

1 Ответ

5 голосов
/ 08 июля 2020

Строгий режим запрещает неявные глобальные переменные.

Переменные должны быть явно объявлены (с const, let или var).

Вы можете создать явный глобальный объект, назначив свойство глобального объекта (window в браузере)… но не делайте этого: глобальные переменные - это хороший способ избежать конфликтов между различными частями кода. (например, между встроенной name переменной браузера и вашей собственной name переменной).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...