Применяйте строгий режим для более безопасного и надежного кода JavaScript

По мере того, как приложения JavaScript становятся все более сложными, становится крайне важно убедиться, что написанный код является безопасным, надежным и удобным в сопровождении. Одним из инструментов, доступных разработчикам JavaScript для применения лучших практик, является директива «use strict». В этом блоге мы рассмотрим, что такое директива use strict, как она работает и как она может помочь нам писать лучший код JavaScript.

Что такое «использовать строго» в JavaScript?

«Использовать строгий режим» — это директива, которая позволяет разработчикам включать строгий режим в своем коде JavaScript. Строгий режим — это функция, добавленная в ECMAScript 5, которая вводит набор правил, делающих код JavaScript более безопасным, надежным и удобным в сопровождении. Директива «use strict» должна быть размещена в начале файла JavaScript или функции, чтобы включить строгий режим.

  • Добавление «use strict» поверх файла
'use strict';

// Your code goes here...
  • Добавление «use strict» поверх функции
function myFunction() {
  'use strict';

  // Your code goes here...
}

Как работает «строгий режим»?

Когда директива use strict включена, код JavaScript выполняется в строгом режиме, который вводит набор правил, которым необходимо следовать. Некоторые из ключевых правил, введенных строгим режимом, включают:

  • Объявления переменных обязательны: в строгом режиме переменные должны быть объявлены до того, как их можно будет использовать. Это предотвращает случайное создание разработчиками глобальных переменных.
"use strict";

// using x without declaring it
x = 10;

// using x in a conditional statement
if (x > 5) {
  console.log("x is greater than 5");
}

Это приведет к выбрасыванию ReferenceError.

  • Присвоение значения необъявленным переменным не допускается: в строгом режиме попытка присвоить значение необъявленной переменной приведет к ошибке ссылки. Это предотвращает случайное создание разработчиками глобальных переменных.
function example() {
  'use strict';
  x = 10; // ReferenceError: x is not defined
}

Это приводит к ReferenceError, потому что x не определено.

  • Удаление переменных или функций не допускается. В строгом режиме попытка удалить переменную или функцию приведет к синтаксической ошибке. Это предотвращает случайное удаление разработчиками переменных или функций.
'use strict';

let myVar = 5;
console.log(myVar); // Output: 5

// Attempting to delete the variable
// generates a runtime error
delete myVar;
  • Ключевое слово this ведет себя по-другому: В строгом режиме значение ключевого слова this не устанавливается неявно в глобальный объект, если он не определен. Это предотвращает случайное изменение разработчиками глобального объекта.
'use strict';

// Declare a global object
let myObj = {
  prop: 'Hello',
  greet: function() {
    console.log(this.prop);
  }
};

// Call the greet() method on myObj
myObj.greet(); // Output: Hello

// Create a new variable that refers to the greet() method
let myGreet = myObj.greet;

// Call the greet() method using the myGreet variable
myGreet(); // Output: TypeError: Cannot read property 'prop' of undefined

Если бы мы не использовали «use strict» в начале файла, то ключевое слово this взяло бы ссылку на глобальный объект, и это привело бы к тому, что this.prop было бы undefined.

  • Восьмеричные литералы не допускаются: В строгом режиме восьмеричные литералы (числа, начинающиеся с нуля) не допускаются. Это предотвращает случайное использование восьмеричных литералов разработчиками, что может привести к неожиданному поведению.
'use strict';

// Octal literal
let num = 0644; // SyntaxError: Octal literals are not allowed in strict mode.

// Decimal literal
let num2 = 644;

console.log(num2); // Output: 644

Преимущества использования «строгого использования»

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

Заключение

В заключение, директива «use strict» — это мощный инструмент, который позволяет разработчикам применять передовой опыт. Мы надеемся, что этот блог дал вам более глубокое понимание того, что такое «строгое использование» и как оно может помочь вам писать лучший код JavaScript.