JavaScript on andestav keel. Osa selle süntaksist on valikuline ja keel taastub vigadest rohkem kui paljud teised. Kuid selle käes hoidmisega kaasneb karistus: vigu võib olla lihtsam ja ebajärjekindlat koodi on raskem lugeda.
Õnneks, kui soovite rohkem distsipliini kasutada, on selleks lihtne viis: range režiim. Range režiim on viis, kuidas paluda JavaScriptil otsustavamalt reageerida, kui teie koodis tekib probleeme.
Mis on range režiim?
Mitmed keeled kasutavad range režiimi mõistet: režiimi, mis hindab ja käitab koodi rangemalt. Võib-olla olete tuttav HTML-i range doctype'iga, mis tühistab teatud elemendid ja atribuudid.
Perlil, teisel tõlgendatud skriptikeelel, on pikka aega olnud oma range režiim. See režiim keelab teatud tüüpi ebaturvalise väljenduse.
Kuidas kasutada JavaScriptis ranget režiimi?
Pange skripti sisse otse ülaosas, enne mis tahes muid avaldusi lause "kasuta ranget".
// kogu see skript on ranges režiimis
'kasuta rangelt';
Pange tähele, et võite selle ette lisada kommentaari, kuid mitte avaldusi. Saate lubada range režiimi JavaScripti failis või HTML-faili skriptiploki alguses. Range režiimi saate lubada ka funktsioonipõhiselt:
function range() {
// Funktsioonitaseme range režiimi süntaks
'kasuta rangelt';
return "See funktsioon on range";
}
function loose() {
return "See funktsioon EI ole range";
}
Kui olete range režiimi lubanud, testige kindlasti oma koodi. Kui töötate veebiga, avage a JavaScripti konsool, et saaksite tuvastada kõik uued vead.
Mida JavaScripti range režiim teeb?
Lühidalt öeldes on range režiim teatud tüüpi probleemsete koodide suhtes vähem andestav. Selle asemel, et probleeme ignoreerida ja täitmist jätkata, peatavad teatud vead skripti. See on sageli ohutum kui soovimatutes olukordades jätkamine.
Hoiab ära juhusliku globaalse leviku
Parim näide, mille eest range režiim kaitseb, on juhuslike globaalsete muutujate loomine. Tavalise täitmise korral on see kood:
myVar = 17;
See loob globaalsele objektile atribuudi nimega myVar, eeldades, et te pole varem myVar-i deklareerinud. Veebibrauseris on globaalseks objektiks tavaliselt aken:
console.log (window.myVar);
>> 17
Kui lisate lause "kasuta ranget", näete konsoolis tõrget, näiteks:
Uncaught ReferenceError: myVar pole määratletud
Põhjus, miks see nii kasulik on, on see, et see tuvastab tavalise kirjavea. Muutuja nime on lihtne valesti sisestada ja paljud keeled tabavad meid sellise vea korral.
Kuid JavaScript võtab vaikimisi lihtsalt globaalse objekti ulatuse ja jätkab, nagu poleks midagi valesti. Mõni kood võib tahtlikult sellest käitumisest sõltuda, mida peaksite range režiimi kasutamise otsustamisel teadma.
Vaata ka: Kuidas hoida oma koodi objektikapseldamise abil puhtana
Muudab ebaõnnestumise selgesõnaliseks
Mõni JavaScripti käitumine ebaõnnestub, kuid see teeb seda vaikselt. Te ei pruugi sellistest vigadest teada, kui te just neid ei kontrolli. Näiteks NaN on globaalse objekti eriomadus, mis tähistab kehtetut numbrit. See atribuut on kirjutuskaitstud, kuid võite siiski proovida sellele kirjutada:
NaN = 2;
>> 2
Kuid kuigi tundub, et see ülesanne õnnestus, ei õnnestunud see:
NaN
>> NaN
Ranges režiimis kuvatakse tegelik tõrketeade, mis ütleb, et te ei saa NaN-ile määrata. See kood kasutab funktsiooni, mis võimaldab teil konsoolis ranget režiimi demonstreerida:
javascript
function badNaN() { "kasuta ranget"; aken. NaN = 2; }
>> määratlemata
badNan()
>> Tabamata tüübiviga: objekti "#" atribuuti "NaN" ei saa määrata ainult lugemiseks
kohas badNaN (:1:46)
seisuga :1:1
See on klassikaline näide, mis näitab, et kuigi teadmatus võib olla õndsus, on mõnikord parem teada, kui midagi läheb valesti.
Hoiatab dubleerivate parameetrite eest
Viimane näide käsitleb JavaScripti vähetuntud funktsiooni. Võib üllatada, et parameetrite nimed ei pea olema kordumatud:
function dupeParam (a, a, c) { console.log (a); }
>> määratlemata
dupeParam (2, 4, 8)
>> 4
Pange tähele, et JavaScript määrab dubleerivale parameetrile uusima väärtuse. Nüüd pole see käitumine eriti kasulik. Tegelikult oleks kasulikum, kui JavaScript teataks meile, et tegemist on veaga, ja täpselt seda range režiim teeb:
function dupeParam (a, a, c) { "kasuta ranget"; }
<< Tabamata süntaksiviga: parameetri nime duplikaat pole selles kontekstis lubatud
Suurema koodikindluse tagamiseks kasutage ranget režiimi
Head tavad ja vahendid nende jõustamiseks käivad käsikäes. Mõnes kontekstis, näiteks professionaalse programmeerimisrolli puhul, soovite kasutada võimalikult palju distsipliini. Isegi kui töötate lihtsalt avatud lähtekoodiga hobiprojekti kallal, võib hooldaja eelistada standardrežiimis ranget režiimi.
Lõppkokkuvõttes on see teie otsustada, kuid on kasulik teada, et abikäsi on saadaval. Programmeerijana peaksite alati otsima parimaid tavasid ja seda, mida saate nende jõustamiseks teha.
Teie kood peaks olema selge ja hõlpsasti hooldatav. Siin on veel mitu programmeerimispõhimõtet, mis aitavad teil oma tegusid puhastada.
Loe edasi
- Programmeerimine
- JavaScript
- Veebiarendus
- Programmeerimiskeeled
Bobby on tehnoloogiaentusiast, kes töötas tarkvaraarendajana enamuse kaks aastakümmet. Ta on kirglik mängude vastu, töötab ajakirja Switch Player peatoimetajana ning on sukeldunud kõigisse veebiavaldamise ja veebiarenduse aspektidesse.
Liituge meie uudiskirjaga
Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!
Tellimiseks klõpsake siin