Pull to refresh

Comments 7

«Глобальный контекст выполнения ...» чуть-чуть будет путает новых разработчиков, ибо как описано ниже глобальный контекст выполнения (window) в ES6 не подвязывается к this. Статья на 5.
Не нашёл, где в статье такое описано ниже, так что неточность у вас: this не привязывается к глобалу в strict mode, который появился в ES5 (а не в ES6). И вопрос этот относится именно к работе strict mode, которого вполне может не быть в скриптах, написанных с использованием стандарта ES6.
«В других случаях this привязывается к глобальному объекту или устанавливается в undefined (в строгом режиме)»
Ваше утверждение:
ибо как описано ниже глобальный контекст в ES6 не подвязывается к this

В статье нет этого неверного утверждения про ES6.
В большинстве случаев используют строгий режим когда используют ES6 ибо «в строгом режиме зарезервирован для использования следующий список ключевых слов: implements, interface, let, package, private, protected, public, static и yield. В строгом режиме, следовательно, вы не можете задействовать эти слова для именования или обращения к переменным или аргументам.» (MDN)
Вы ошибаетесь, вкусности строгого режима в основном в другом, и строгий режим в большинстве случаев используют и с ES5. ES6 тут вообще не при чём. В ES6 разве что появились модули, для которых возможен только строгий режим, но это тоже не при чём.
В ES6 существует одно различие между компонентами LexicalEnvironment и VariableEnvironment. Оно заключается в том, что первое используется для хранения объявлений функций и переменных, объявленных с помощью ключевых слов let и const, а второе — только для хранения привязок переменных, объявленных с использованием ключевого слова var.

Тут неточность, function declaration работает аналогично var а не let и const, то есть всплывает на верх лексического окружения функции (даже если объявлено в блоке), что в терминах статьи соответствует VariableEnvironment (на самом деле такого нет)

Существует два типа лексических окружений:

Начиная с ES6 — существует три типа окружений, не хватает еще блочного (оно используется для let и const в блоках)
Sign up to leave a comment.