JavaScript to wyrozumiały język. Niektóre z jego składni są opcjonalne, a język naprawia się po błędach z większą gracją niż wiele innych. Ale to trzymanie za rękę wiąże się z karą: może być łatwiej wprowadzać błędy, a niespójny kod jest trudniejszy do odczytania.

Na szczęście, jeśli chcesz ćwiczyć większą dyscyplinę, jest na to prosty sposób: tryb ścisły. Tryb ścisły to sposób na poproszenie JavaScriptu, aby reagował bardziej zdecydowanie, gdy napotka problemy w kodzie.

Co to jest tryb ścisły?

Kilka języków używa koncepcji trybu ścisłego: trybu, który ocenia i uruchamia kod bardziej rygorystycznie. Być może znasz HTML strict doctype, który przestarzał niektóre elementy i atrybuty.

Perl, inny interpretowany język skryptowy, od dawna ma swój własny tryb ścisły. Ten tryb zabrania niektórych rodzajów niebezpiecznych wyrażeń.

Jak używać trybu ścisłego w JavaScript?

W skrypcie umieść instrukcję „use strict” na samej górze, przed innymi instrukcjami:

// cały skrypt będzie w trybie ścisłym
„użyj ściśle”;
instagram viewer

Zwróć uwagę, że możesz umieścić przed nim komentarz, ale żadnych stwierdzeń. Tryb ścisły można włączyć w pliku JavaScript lub na początku bloku skryptu w pliku HTML. Możesz także włączyć tryb ścisły na podstawie funkcji po funkcji:

funkcja ścisłe () {
// Składnia trybu ścisłego na poziomie funkcji
„użyj ściśle”;
return "Ta funkcja jest ścisła";
}
funkcja luźna () {
return "Ta funkcja NIE jest ścisła";
}

Po włączeniu trybu ścisłego przetestuj swój kod. Jeśli pracujesz w sieci, otwórz a Konsola JavaScript, dzięki czemu można zidentyfikować nowe błędy.

Co robi tryb ścisły JavaScript?

Krótko mówiąc, tryb ścisły będzie mniej wybaczał pewne typy problematycznego kodu. Zamiast ignorować problemy i kontynuować wykonywanie, niektóre błędy spowodują zatrzymanie skryptu. Jest to często bezpieczniejsze niż kontynuowanie w niepożądanych okolicznościach.

Zapobiega przypadkowym globalnym

Najlepszym przykładem, przed którym chroni tryb ścisły, jest tworzenie przypadkowych zmiennych globalnych. W normalnym wykonaniu ten kod:

myVar = 17;

Utworzy właściwość o nazwie myVar w obiekcie globalnym, zakładając, że wcześniej nie zadeklarowałeś myVar. W przeglądarce internetowej globalnym obiektem jest zazwyczaj okno:

console.log (okno.myVar);
>> 17

Jeśli jednak dodasz oświadczenie „use strict”, zobaczysz błąd w konsoli, na przykład:

Nieprzechwycony błąd referencyjny: myVar nie jest zdefiniowany

Powodem, dla którego jest to tak przydatne, jest to, że wyłapuje typowy przypadek literówki. Łatwo jest pomylić nazwę zmiennej, a wiele języków wykryłoby nas po takim błędzie.

Ale JavaScript, domyślnie, po prostu zakłada zasięg globalnego obiektu i kontynuuje, jakby nic się nie stało. Część kodu może celowo zależeć od tego zachowania, o czym powinieneś wiedzieć, decydując się na użycie trybu ścisłego.

Zobacz też: Jak zachować czystość kodu dzięki enkapsulacji obiektów?

Sprawia, że ​​porażka jest jawna

Niektóre zachowanie w JavaScript zawodzi, ale robi to po cichu. Możesz nie wiedzieć o takich błędach, chyba że specjalnie je sprawdzasz. Na przykład NaN jest specjalną właściwością obiektu globalnego, która reprezentuje nieprawidłową liczbę. Ta właściwość jest tylko do odczytu, ale nadal możesz spróbować w niej pisać:

NaN = 2;
>> 2

Ale chociaż wygląda na to, że to zadanie się powiodło, tak się nie stało:

NaN
>> NaN

W trybie ścisłym pojawi się rzeczywisty błąd z informacją, że nie możesz przypisać do NaN. Ten kod wykorzystuje funkcję, dzięki której możesz zademonstrować tryb ścisły w konsoli:

javascript
function badNaN() { "użyj ścisłego"; okno. NaN = 2; }
>> nieokreślone
złyNan()
>> Nieprzechwycony błąd typu: nie można przypisać tylko do odczytu właściwości „NaN” obiektu „#”
w badNaN (:1:46)
o :1:1

To klasyczny przykład, który pokazuje, że chociaż ignorancja może być błogością, czasami lepiej wiedzieć, czy coś pójdzie nie tak.

Ostrzega o zduplikowanych parametrach

Ostatni przykład dotyczy mało znanej funkcji JavaScript. Może Cię zaskoczyć informacja, że ​​nazwy parametrów nie muszą być unikalne:

function dupeParam (a, a, c) { console.log (a); }
>> nieokreślone
dupeParam (2, 4, 8)
>> 4

Zwróć uwagę, że JavaScript przypisuje ostatnią wartość do zduplikowanego parametru. To zachowanie nie jest szczególnie przydatne. W rzeczywistości bardziej przydatne byłoby, gdyby JavaScript powiedział nam, że to błąd, i dokładnie to robi tryb ścisły:

function dupeParam (a, a, c) { "użyj ściśle"; }
<< Uncaught SyntaxError: zduplikowana nazwa parametru nie jest dozwolona w tym kontekście

Użyj trybu ścisłego, aby uzyskać dodatkową pewność kodu

Dobre praktyki i sposoby ich egzekwowania idą w parze. W niektórych kontekstach, takich jak profesjonalna rola programisty, będziesz chciał ćwiczyć jak największą dyscyplinę. Nawet jeśli pracujesz tylko nad hobbystycznym projektem open-source, opiekun może preferować używanie trybu ścisłego jako standardu.

Ostatecznie zależy to od Ciebie, ale warto wiedzieć, że dostępna jest pomocna dłoń. Jako programista zawsze powinieneś szukać najlepszych praktyk i tego, co możesz zrobić, aby je egzekwować.

10 podstawowych zasad programowania, które każdy programista musi znać

Twój kod powinien być przejrzysty i łatwy w utrzymaniu. Oto kilka innych zasad programowania, które pomogą Ci uporządkować swoje działania.

Czytaj dalej

UdziałĆwierkaćE-mail
Powiązane tematy
  • Programowanie
  • JavaScript
  • Tworzenie stron internetowych
  • Języki programowania
O autorze
Bobby Jack (62 opublikowane artykuły)

Bobby jest entuzjastą technologii, który przez prawie dwie dekady pracował jako programista. Jest pasjonatem gier, pracuje jako redaktor naczelny w Switch Player Magazine i jest zanurzony we wszystkich aspektach publikowania online i tworzenia stron internetowych.

Więcej od Bobby'ego Jacka

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować