Page 157 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 157
глобальной переменной не существовало, то она тут же создавалась! Можете пред
ставить себе проблемы, к которым это приводило.
По этой причине (и ряду других) в JavaScript была введена концепция строгого
режима (strict mode), предотвращающего неявные глобальные переменные. Строгий
режим включается с помощью строкового литерала "use strict" (здесь вы можете
использовать одиночные или двойные кавычки), расположенного в отдельной стро
ке, перед любым другим кодом. Если сделать это в глобальной области видимости,
весь сценарий будет выполняться в строгом режиме, а если сделать это в функции,
то в строгом режиме будет выполняться только функция.
Поскольку строгий режим относится ко всему сценарию, если перейти к нему
в глобальной области видимости, то могут возникнуть проблемы. На многих совре
менных веб-сайтах используются вместе различные сценарии, написанные разными
людьми. Поэтому переход в строгий режим в глобальной области видимости в од
ном из таких сценариев переводит в строгий режим их все. Хотя было бы, конечно,
хорошо, чтобы все сценарии работали правильно в строгом режиме, но это далеко
не так. Значит, обычно нецелесообразно использовать строгий режим в глобальной
области видимости. Если вы не хотите включать строгий режим в каждой функ
ции по отдельности (и кто бы это захотел делать?), можете заключить весь свой код
в одну немедленно выполняемую функцию (больше об этом мы узнаем в главе 1 3 ).
( function ) {
(
' u se strict ' ;
// весь ваш код будет здесь . . , он
.
/ / выполняется в строгом режиме, но
/ / строгий режим не будет затрагивать
// никаких других сценариев , запущенных
1 1 вместе с этим
} ) ( ) ;
Строгий режим считается хорошей вещью, и я рекомендую его использовать. Если
вы будете использовать анализатор (что обязательно нужно делать!), то это предот
вратит большинство распространенных проблем, но страховка никогда не помешает!
Чтобы узнать больше о строгом режиме, читайте соответствующую статью в биб
лиотеке MDN.
За к люч е н и е
Знать области видимости важно для изучения любого языка программирования.
Введение ключевого слова let приводит JavaScript в соответствие с большинством
других современных языков. Хотя JavaScript - не первый язык, который поддер
живает замкнутые выражения, это один из первых популярных (не академических)
языков, сделавших это. В сообществе JavaScript замкнутые выражения используются
для пущего эффекта, но это важная часть современной разработки JavaScript.
1 5 8 Глава 7. Область видимости

