`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.