`strict mode` w JavaScript

`strict mode` w JavaScript

Ten artykuł wyjaśnia tryb strict w JavaScripcie.

YouTube Video

strict mode w JavaScript

W języku JavaScript strict mode to funkcja wprowadzona w ECMAScript 5 (ES5), która zwiększa bezpieczeństwo kodu i zapobiega błędom. Korzystając z trybu ścisłego, niektóre luźniejsze składnie i potencjalnie ryzykowne funkcje są wyłączone, a sprawdzanie błędów jest bardziej rygorystyczne. To pozwala programistom unikać nieoczekiwanych zachowań i pisać bardziej niezawodny oraz wysokowydajny kod.

Włączanie strict mode

Aby włączyć tryb ścisły, dodaj następującą dyrektywę na początku swojego kodu.

1"use strict";

Deklaracja ta może być zastosowana do całego skryptu lub na poziomie pojedynczej funkcji. Na przykład, jeśli zastosujesz to do całego skryptu, możesz to zapisać w następujący sposób:.

1"use strict";
2
3function example() {
4    // Strict mode is applied
5}

Jeśli zastosujesz to dla każdej funkcji, możesz to zapisać w następujący sposób:.

1function example() {
2    "use strict";
3    // Strict mode is applied only within this function
4}

Strict mode działa w zakresie poszczególnych obszarów, więc można go również włączyć wewnątrz funkcji. Ponadto, ponieważ tryb strict jest domyślnie włączony w modułach, nie musisz deklarować go osobno w module.

Kluczowe cechy i różnice strict mode

Korzystanie z strict mode zmienia niektóre domyślne zachowania JavaScript. Oto główne przykłady.

Zakaz używania domyślnych zmiennych globalnych

W zwykłym JavaScript pominięcie deklaracji zmiennych automatycznie definiuje je jako zmienne globalne, ale w strict mode skutkuje to błędem.

1"use strict";
2
3x = 10;  // Error: x is not defined

Zawsze należy deklarować zmienne za pomocą var, let lub const.

Ograniczenie stosowania zarezerwowanych słów kluczowych

Potencjalne przyszłe słowa kluczowe JavaScript (np. implements, interface, package itp.) nie mogą być używane jako nazwy zmiennych lub funkcji w strict mode.

1"use strict";
2
3var package = "strict mode";  // Error: Unexpected strict mode reserved word

Zmiany w zachowaniu this

W trybie normalnym this wewnątrz funkcji odnosi się do obiektu globalnego (np. window w przeglądarkach), ale w strict mode this jest undefined.

1"use strict";
2
3function example() {
4    console.log(this);  // undefined
5}
6
7example();

To pomaga zapobiegać błędom spowodowanym nieprawidłowym użyciem this.

Zakaz usuwania właściwości niemożliwych do usunięcia

W trybie normalnym próba usunięcia nieusuwalnych właściwości obiektu jest ignorowana bez błędu, ale w strict mode powoduje błąd.

1"use strict";
2
3var obj = Object.freeze({name: "John"});
4delete obj.name;  // Error: Cannot delete property 'name'

Zakaz duplikowania nazw parametrów

W trybie normalnym deklarowanie parametrów o tej samej nazwie wielokrotnie jest dozwolone, ale w strict mode powoduje błąd.

1"use strict";
2
3function example(a, a) {
4    // Error: Duplicate parameter name not allowed in this context
5}

Zakaz używania instrukcji with

Instrukcja with może obniżyć czytelność kodu i jest niedozwolona w strict mode.

1"use strict";
2
3with (Math) {
4    // Error: Strict mode code may not include a with statement
5}

Zalety strict mode

Strict mode zwiększa bezpieczeństwo i wydajność kodu na kilka sposobów.

Lepsze wykrywanie błędów

W strict mode wykrywane są błędy pomijane w trybie normalnym, co pozwala programistom wczesniej wykryć potencjalne błędy. Na przykład zapobiega tworzeniu niezamierzonych zmiennych globalnych i niewłaściwemu używaniu zarezerwowanych słów.

Zwiększona wydajność

W strict mode silniki JavaScript mogą efektywniej optymalizować kod. W rezultacie może zwiększyć się szybkość wykonywania kodu.

Zwiększone bezpieczeństwo kodu

Obsługa this staje się bardziej rygorystyczna, co zapobiega dostępowi do niepotrzebnych obiektów globalnych, zwiększając tym samym bezpieczeństwo kodu. Dodatkowo ograniczenie użycia zarezerwowanych słów pozwala uniknąć przyszłych konfliktów z nowymi słowami kluczowymi.

Kompatybilność i uwagi

Strict mode został wprowadzony w ECMAScript 5 i nie jest obsługiwany w przeglądarkach wydanych wcześniej. Jednak włączenie strict mode jest po prostu ignorowane przez nieobsługiwane przeglądarki, bez psucia skryptu. Dlatego zwykle można go bezpiecznie używać.

Podczas wprowadzania strict mode do dużego istniejącego projektu kluczowe jest dokładne testowanie, aby uniknąć nieoczekiwanych błędów.

Wnioski

Strict mode w JavaScript jest niezwykle przydatną funkcją do poprawy jakości kodu. W szczególności w przypadku dużych projektów lub pracy zespołowej zaleca się aktywne korzystanie z trybu ścisłego, aby zapobiegać niespodziewanym błędom i usterkom oraz poprawić czytelność i łatwość utrzymania kodu.

Zrozumienie i właściwe stosowanie strict mode pomaga unikać pułapek JavaScript i umożliwia bezpieczniejsze oraz bardziej efektywne tworzenie oprogramowania.

Możesz śledzić ten artykuł, korzystając z Visual Studio Code na naszym kanale YouTube. Proszę również sprawdzić nasz kanał YouTube.

YouTube Video