JavaScript je zhovievavý jazyk. Niektoré z jeho syntaxe sú voliteľné a jazyk sa zotavuje z chýb s väčšou gráciou ako mnohé iné. Ale toto držanie za ruku prichádza s trestom: môže byť jednoduchšie zavádzať chyby a nekonzistentný kód je ťažšie čitateľný.

Našťastie, ak chcete vykonávať viac disciplíny, existuje jednoduchý spôsob, ako to urobiť: prísny režim. Prísny režim je spôsob, ako požiadať JavaScript, aby reagoval rozhodnejšie, keď narazí na problémy vo vašom kóde.

Čo je to prísny režim?

Niekoľko jazykov používa koncept prísneho režimu: režim, ktorý vyhodnocuje a spúšťa kód prísnejšie. Možno poznáte HTML striktný doctype, ktorý zavrhuje určité prvky a atribúty.

Perl, ďalší interpretovaný skriptovací jazyk, má už dlho svoj vlastný striktný režim. Tento režim zakazuje určité typy nebezpečných výrazov.

Ako môžem použiť prísny režim v JavaScripte?

Vo vnútri skriptu umiestnite príkaz „použiť prísne“ priamo hore pred akékoľvek iné príkazy:

// celý tento skript bude v prísnom režime
„používať prísne“;
instagram viewer

Všimnite si, že pred ním môžete vložiť komentár, ale žiadne vyjadrenia. Prísny režim môžete povoliť v súbore JavaScript alebo na začiatku bloku skriptu v súbore HTML. Prísny režim môžete povoliť aj pre jednotlivé funkcie:

function strict() {
// Syntax prísneho režimu na úrovni funkcií
„používať prísne“;
return "Táto funkcia je prísna";
}
function loose() {
return "Táto funkcia NIE JE prísna";
}

Keď povolíte prísny režim, otestujte svoj kód. Ak pracujete s webom, otvorte a konzola JavaScript, takže môžete identifikovať akékoľvek nové chyby.

Čo robí prísny režim JavaScriptu?

Stručne povedané, striktný režim bude menej zhovievavý k určitým typom problematického kódu. Namiesto ignorovania problémov a pokračovania vo vykonávaní skript zastavia určité chyby. To je často bezpečnejšie ako pokračovať v nežiaducich okolnostiach.

Zabraňuje náhodným globálom

Najlepším príkladom, pred ktorým striktný režim chráni, je vytváranie náhodných globálnych premenných. Pri normálnom vykonávaní tento kód:

myVar = 17;

Vytvorí vlastnosť s názvom myVar na globálnom objekte za predpokladu, že ste predtým nedeklarovali myVar. Vo webovom prehliadači je globálnym objektom zvyčajne okno:

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

Ak však zahrniete vyhlásenie „použite prísne“, v konzole sa zobrazí chyba, napríklad:

Uncaught ReferenceError: myVar nie je definovaná

Dôvod, prečo je to také užitočné, je, že zachytáva bežný prípad preklepu. Je ľahké nesprávne zadať názov premennej a mnoho jazykov by nás pri takejto chybe zachytilo.

JavaScript však v predvolenom nastavení jednoducho preberá rozsah globálneho objektu a pokračuje, akoby sa nič nedialo. Niektoré kódy môžu úmyselne závisieť od tohto správania, čo je niečo, čo by ste si mali uvedomiť, keď sa rozhodnete použiť prísny režim.

Pozri tiež: Ako udržať kód čistý pomocou zapuzdrenia objektu

Zlyhanie je explicitné

Niektoré správanie v JavaScripte zlyhá, ale robí to potichu. O takýchto chybách možno neviete, pokiaľ ich konkrétne nekontrolujete. Napríklad NaN je špeciálna vlastnosť globálneho objektu, ktorá predstavuje neplatné číslo. Táto vlastnosť je len na čítanie, ale stále môžete do nej skúsiť zapisovať:

NaN = 2;
>> 2

Ale aj keď sa zdá, že táto úloha bola úspešná, nie:

NaN
>> NaN

V prísnom režime sa zobrazí skutočná chyba, ktorá vám povie, že nemôžete priradiť NaN. Tento kód používa funkciu, aby ste mohli demonštrovať striktný režim v konzole:

javascript
function badNaN() { "použiť prísne"; okno. NaN = 2; }
>> nedefinované
badNan()
>> Nezachytená chyba typu: Nemožno priradiť vlastnosť „NaN“ objektu „#“ len na čítanie
v badNaN (:1:46)
v pomere :1:1

Toto je klasický príklad, ktorý ukazuje, že aj keď nevedomosť môže byť blaženosťou, niekedy je lepšie vedieť, či sa niečo pokazí.

Varuje pred duplicitnými parametrami

Posledný príklad sa zaoberá málo známou funkciou JavaScriptu. Možno vás prekvapí, že názvy parametrov nemusia byť jedinečné:

function dupeParam (a, a, c) { console.log (a); }
>> nedefinované
dupeParam (2, 4, 8)
>> 4

Všimnite si, že JavaScript priraďuje poslednú hodnotu duplicitnému parametru. Teraz toto správanie nie je obzvlášť užitočné. V skutočnosti by bolo užitočnejšie, keby nám JavaScript oznámil, že ide o chybu, a presne to robí prísny režim:

function dupeParam (a, a, c) { "použiť prísne"; }
<< Uncaught SyntaxError: Duplicitný názov parametra nie je v tomto kontexte povolený

Použite prísny režim pre extra istotu kódu

Osvedčené postupy a prostriedky na ich presadzovanie idú ruka v ruke. V niektorých kontextoch, ako je napríklad profesionálna programátorská rola, budete chcieť uplatniť čo najväčšiu disciplínu. Aj keď práve pracujete na hobby projekte s otvoreným zdrojovým kódom, správca môže uprednostniť štandardné používanie prísneho režimu.

V konečnom dôsledku je to na vás, ale je užitočné vedieť, že je k dispozícii pomocná ruka. Ako programátor by ste mali vždy hľadať osvedčené postupy a čo môžete urobiť, aby ste ich presadili.

10 základných princípov programovania, ktoré musí poznať každý programátor

Váš kód by mal byť jasný a ľahko udržiavateľný. Tu je niekoľko ďalších princípov programovania, ktoré vám pomôžu vyčistiť váš čin.

Prečítajte si ďalej

zdieľamTweetujteEmail
Súvisiace témy
  • Programovanie
  • JavaScript
  • Vývoj webových aplikácií
  • Programovacie jazyky
O autorovi
Bobby Jack (62 publikovaných článkov)

Bobby je technologický nadšenec, ktorý väčšinu dvoch desaťročí pracoval ako vývojár softvéru. Je nadšený pre hranie hier, pracuje ako šéfredaktor v časopise Switch Player Magazine a je ponorený do všetkých aspektov online publikovania a vývoja webu.

Viac od Bobbyho Jacka

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber