Я использую Node v12.14.1 в Windows 10 в cmd.
При присвоении значения неопределенной функции переменной:
let a = f();
Я получил:
Thrown:
ReferenceError: f is not defined
Что хорошо. Но когда я пытаюсь:
a = 2;
Теперь я получаю:
Thrown:
ReferenceError: a is not defined
И когда я пытаюсь:
let a = 2;
Я получил:
Thrown:
SyntaxError: Identifier 'a' has already been declared
Таким образом, переменная, объявленная с помощью let, при присвоении значения неопределенной функции имеет уже объявленный идентификатор и в то же время не определена.
Это задумано? Я что-то упустил здесь? Является ли это ошибкой?
То же самое не происходит при использовании var в неопределенном назначении функции или когда ничего не используется (глобальная переменная).
let
,const
иclass
) в главе 2 моей новой книги, которая выйдет через пару месяцев. Ссылки в моем профиле, если интересно. 12.05.2020