Сбер AIJ 11.12.24
Сбер AIJ 11.12.24
Сбер AIJ 11.12.24

Как работает режим strict в JavaScript

Аватарка пользователя Рафаил Агазода
Отредактировано

Рассмотрели строгий режим strict на JavaScript, и обсудили, что это такое, как он работает и как он помогает писать лучший код.

6К открытий7К показов

JavaScript — универсальный и широко используемый язык программирования для веб-разработки. Однако его гибкость иногда может привести к непредвиденным последствиям, поэтому разработчикам крайне важно писать надежный и удобный для сопровождения код.

Один из способов добиться этого — использовать «строгий режим» JavaScript или режим Strict.

В этой статье мы подробно рассмотрим режим strict на JavaScript, обсудим, что это такое, как он работает и как он может помочь вам писать лучший код.

Что такое режим Strict

Строгий режим или Strict — это функция, представленная в ECMAScript 5 (ES5), которая позволяет разработчикам использовать более строгий и безопасный вариант JavaScript.

При активации он применяет строгие правила и ограничения, помогая выявлять распространенные ошибки и повышать качество кода. Строгий режим можно включить для каждого файла или функции, что позволяет разработчикам выбирать, где применять его ограничения.

Зачем использовать строгий режим

  1. Предотвращение ошибок. Строгий режим помогает предотвратить потенциальные ошибки, которые в обычном режиме просто игнорировались бы.
  2. Упрощенная отладка. Благодаря раннему обнаружению ошибок строгий режим может ускорить и повысить эффективность отладки.
  3. Улучшенная производительность. Некоторые оптимизации возможны только в строгом режиме, поскольку он устраняет некоторые подверженные ошибкам функции языка.
  4. Забота о будущем. Строгий режим запрещает использование устаревших функций или функций, которые скоро станут устаревшими, помогая вашему коду оставаться совместимым с будущими версиями JavaScript.

Как включить строгий режим

Включение строгого режима выполняется прямо в коде. Просто добавьте следующее в начало файла JavaScript:

			"use strict";
		

Эта директива информирует интерпретатор JavaScript о необходимости применения правил Strict для всего файла или функции, в которой он появляется.

Имейте в виду, что включение строгого режима в одном скрипте или функции не влияет на другие скрипты или функции.

Использование строгого режима в Node

Node также поддерживает строгий режим. У вас есть 2 варианта с этим подходом.

Первый вариант — использовать "use strict"; в начале файлов, которые вы обрабатываете в Node.

Второй — загрузить узел через cli в строгом режиме:

			node --use_strict
		

Главное, что следует помнить — вы загружаете всё приложение в строгом режиме. Режим затронет любые сторонние библиотеки, которые вы используете.

Если сторонняя программа плохо работает в строгом режиме, вас оповестят об этом, и, возможно, вам не следует использовать Strict.

Ограничения Strict-режима

Строгий режим применяет несколько правил и ограничений, которые помогают улучшить качество кода. Вот некоторые из наиболее значительных ограничений.

Объявление переменной

В строгом режиме вы должны объявить переменные с помощью ключевых слов var, let или const перед их использованием. В противном случае возникнет ошибка.

Это предотвратит случайное создание глобальной переменной.

			// Non-strict mode
undeclaredVariable = 42; // Creates a global variable

// Strict mode
"use strict";
undeclaredVariable = 42; // Throws a ReferenceError
		

Повторяющиеся имена параметров

Строгий режим запрещает функции с повторяющимися именами параметров. При попытке использовать их возникнет синтаксическая ошибка.

			// Non-strict mode
function duplicateParameters(a, a) { // No error
}

// Strict mode
"use strict";
function duplicateParameters(a, a) { // Throws a SyntaxError
}
		

Восьмеричные литералы

Восьмеричные литералы (например, 0123) не допускаются в строгом режиме, и попытка их использования приведет к синтаксической ошибке. Вместо этого используйте префикс 0o для восьмеричных чисел.

			// Non-strict mode
var octal = 0123; // No error

// Strict mode
"use strict";
var octal = 0123; // Throws a SyntaxError
var octal = 0o123; // Correct octal syntax in strict mode
		

Назначение свойств только для чтения

В строгом режиме попытка присвоить значение свойству, доступному только для чтения (например, глобальной переменной, такой как undefined, или свойству только для чтения встроенного объекта) приведет к ошибке TypeError.

			// Non-strict mode
undefined = 42; // No error

// Strict mode
"use strict";
undefined = 42; // Throws a TypeError
		

Оператор with

Оператор with запрещен в строгом режиме, так как он может привести к неоднозначному и трудно отлаживаемому коду.

Использование with в строгом режиме приведет к синтаксической ошибке.

			// Non-strict mode
with (object) {
  // Do something with object's properties
}

// Strict mode
"use strict";
with (object) { // Throws a SyntaxError
}
		

Изменения eval

В строгом режиме eval имеет собственную область видимости, и переменные, объявленные внутри вызова eval, не попадают в окружающую область.

Кроме того, присвоение eval или использование его в качестве имени функции запрещено.

			// Non-strict mode
eval("var localVar = 42;");
console.log(localVar); // Logs 42

// Strict mode
"use strict";
eval("var localVar = 42;");
console.log(localVar); // Throws a ReferenceError
		

Значение this

В нестрогом режиме значение this внутри функции, вызываемой без явного получателя (например, в качестве отдельной функции, а не метода), по умолчанию равно глобальному объекту.

В строгом режиме this является undefined, что помогает предотвратить случайные изменения глобального объекта.

			// Non-strict mode
function logThis() {
  console.log(this);
}
logThis(); // Logs the global object (e.g., `window` in browsers)

// Strict mode
"use strict";
function logThis() {
  console.log(this);
}
logThis(); // Logs `undefined`
		

Строгий режим JavaScript — это мощный инструмент, который может помочь вам написать более надежный, удобный в сопровождении и ориентированный на будущее код.

Применяя более строгие правила и ограничения, строгий режим помогает выявлять распространенные ошибки кодирования, повышать производительность и обеспечивать совместимость с будущими версиями JavaScript.

Поняв и приняв строгий режим, вы сможете улучшить свои навыки разработки JavaScript и создавать более качественные веб-приложения.

Следите за новыми постами
Следите за новыми постами по любимым темам
6К открытий7К показов