Use strict JavaScript — это модель разработки, которая часто используется в
современном программировании на JavaScript. Главная особенность этого режима,
что он дает возможность разработчикам использовать только ограниченный
синтаксис и не допускать лишних ошибок.
Синтаксис «строгого режима» отличается от традиционного синтаксиса JavaScript. В
нем не проходят многие ошибки, которые легко пройдут в стандартном. Поэтому
очень часто стандартный синтаксис называют «грязным», от того что в нем многие
мелкие ошибки игнорируются. Такое «игнорирование» – это не всегда плохо. В
мелких проектах молодых разработчиков оно ни к чему плохому не приводит. Но
если проект большой, то наличие в коде «мелких» ошибок иногда может привести к
непредсказуемым результатам. И чтобы этого не произошло, разработчики
применяют режим use strict при разработке на языке JavaScript.
Строгий режим не даст системе закрыть глаза на «тихие» ошибки и заставит ее
остановить процесс выполнения программы в случае их обнаружения. То есть этот
режим дает возможность писать программы, в которых не будет недочетов.
Use strict в JavaScript
Use strict в JavaScript может применяться ко всему документу сразу или к отдельным
его функциям. Для того чтобы включить этот режим в документе, нужно в нужном
месте разместить выражение «Use strict» в одинарных или двойных кавычках.
Когда нет желания подключать весь документ к строгому режиму, нужно осторожно
относится к чередованию «строгих» или «нестрогих» функций в документе. Иногда в
такой «смеси» под «строгий режим» попадает код функции, которая для этого не
рассчитана. И наоборот, код, который должен быть в «строгом» режиме, попадает
под «нестрогий».
Когда нужно сделать отдельную функцию «строгой», то в ее верхней части тела
нужно вписать «Use strict». При этом, все что входит в состав этой функции будет в
«строгом режиме», даже другие вложенные функции.
Отличия «use strict» и стандартный режим в JavaScript
Применение «use strict» вносит следующие изменения в JavaScript:
- При режиме «strict» к неопределенной переменной не присваивается
значение. - Нельзя применить инструкцию «with».
- Нет возможности добавить повторяющиеся свойства в литерале объекта.
- Нет возможности добавить дополнительные параметры формальной функции.
- Когда изменяется объект «arguments», не изменяются аргументы.
- Когда аргумент является неизменяемым свойством объекта, то «delete»
выдаст ошибку. - Нет возможности преобразовать «this» в объект.
- Нет возможности изменять «eval» и «arguments», а также применять их в
качестве имени. - Увеличенное количество слов, которые зарезервировали для будущего
применения. - Нет возможности использовать восьмеричную систему.
- Нет возможности применять конструкции кода, которые могут затруднить
оптимизацию самого кода. - Нельзя объявить переменную в коде, который был передан методу «eval».
- Нельзя удалить обычные переменные.
- И др.
Возможно вам будет интересно почитать статью “JavaScript: Основные команды и разбор частых ошибок”
Заключение
Use strict в JavaScript — это то, что делает код чище и безопасней. Этот режим
существует уже очень долго и поддерживается всеми современными браузерами.
Проблемы с этим режимом могут возникнуть только в старых версиях Internet
Explorer.
Use strict в JavaScript часто используется для лучшей оптимизации программы, а
также для поиска «тихих» ошибок, которые могут давать неоднозначные результаты.
Часто спрашивают, а всегда ли нужно использовать режим «use strict»? Вообще это
риторический вопрос и однозначно на него не ответить. С одной стороны, этот режим
улучшает код, но другой стороны, при кодировании в этом режиме, увеличивается
время разработки. Поэтому тут, скорее всего будет зависеть от проекта и лично от
вас, как от разработчика нужен он вам или нет?