Пошук уроків, статей та іншого контенту
Що таке строгий режим і навіщо він потрібен
У JavaScript існує strict mode, або строгий режим.
Його можна активувати директивою:
"use strict";Історично JavaScript дозволяв деякі небезпечні або неоднозначні конструкції.
Строгий режим робить правила суворішими та допомагає раніше знаходити помилки.
Наприклад:
"use strict";
userName = "Anna";Якщо userName не була оголошена, виникне:
ReferenceErrorЦе корисно, тому що, ймовірно, розробник забув:
const userName = "Anna";або:
let userName = "Anna";У старому нестрогому JavaScript деякі подібні операції могли неявно створювати глобальні властивості.
Це небезпечно:
userNmae = "Anna";Зверніть увагу на помилку в назві.
Замість швидкого повідомлення про проблему можна було отримати небажану глобальну змінну.
Strict mode допомагає уникати частини таких ситуацій.
Для всього класичного скрипту:
"use strict";
const name = "Anna";
function greet() {
console.log(name);
}Директива повинна знаходитися на початку відповідної області.
Можна також увімкнути strict mode лише для функції:
function calculate() {
"use strict";
// strict mode тут
}Якщо використовується:
<script type="module" src="app.js"></script>модулі JavaScript автоматично працюють у strict mode.
Тому додавати:
"use strict";у кожен ES Module не потрібно.
Класи JavaScript також мають строгішу семантику виконання для свого тіла.
У сучасних проєктах часто використовують:
ES Modules
bundlers
TypeScript
frameworksТому розробник може майже ніколи вручну не писати "use strict".
Проте розуміти цю директиву важливо, особливо при роботі зі старим JavaScript-кодом або класичними скриптами.
Писати директиву не на початку.
console.log("start");
"use strict";У такому вигляді вона вже не активує strict mode для всього скрипту як directive prologue.
Думати, що strict mode перевіряє всі можливі помилки. Він лише змінює певні правила мови.
Додавати "use strict" у кожен ES Module. Це зайве — модулі вже працюють у strict mode.
Strict mode робить JavaScript суворішим і допомагає уникати частини небезпечної поведінки.
У класичних скриптах він активується так:
"use strict";У сучасних ES Modules строгий режим використовується автоматично.