JavaScript on anteeksiantava kieli. Osa sen syntaksista on valinnaista, ja kieli toipuu virheistä hienovaraisemmin kuin monet muut. Mutta tästä kädestä pitämisestä seuraa rangaistus: virheiden lisääminen voi olla helpompaa, ja epäjohdonmukaista koodia on vaikeampi lukea.
Onneksi, jos haluat harjoittaa enemmän kurinalaisuutta, on olemassa helppo tapa tehdä se: tiukka tila. Tiukka tila on tapa pyytää JavaScriptiä reagoimaan päättäväisemmin, kun se kohtaa ongelmia koodissasi.
Mikä on tiukka tila?
Useat kielet käyttävät tiukan tilan käsitettä: tilaa, joka arvioi ja suorittaa koodia tiukemmin. Saatat tuntea HTML-tiedon doctypen, joka poistaa käytöstä tietyt elementit ja attribuutit.
Perlillä, toisella tulkitulla skriptikielellä, on pitkään ollut oma tiukka tilansa. Tämä tila kieltää tietyntyyppiset vaaralliset ilmaisut.
Kuinka käytän tiukkaa tilaa JavaScriptissä?
Laita komentosarjan yläosaan "käytä tiukkaa" -lausetta ennen muita lauseita:
// tämä koko skripti on tiukassa tilassa
"käytä tiukkaa";
Huomaa, että voit lisätä kommentin ennen sitä, mutta et lausumia. Voit ottaa tiukan tilan käyttöön JavaScript-tiedostossa tai komentosarjalohkon alussa HTML-tiedostossa. Voit myös ottaa käyttöön ankaran tilan toimintokohtaisesti:
function strict() {
// Toimintotason tiukan tilan syntaksi
"käytä tiukkaa";
return "Tämä toiminto on tiukka";
}
function loose() {
return "Tämä toiminto EI ole tiukka";
}
Kun olet ottanut tiukan tilan käyttöön, varmista, että testaat koodisi. Jos työskentelet verkossa, avaa a JavaScript-konsoli, jotta voit tunnistaa uudet virheet.
Mitä JavaScriptin tiukka tila tekee?
Lyhyesti sanottuna tiukka tila on vähemmän anteeksiantavainen tietyntyyppisten ongelmallisten koodien suhteen. Sen sijaan, että jättäisit huomioimatta ongelmia ja jatkaisit suorittamista, tietyt virheet pysäyttävät komentosarjan. Tämä on usein turvallisempaa kuin jatkaminen ei-toivotuissa olosuhteissa.
Estää vahingossa tapahtuvat globaalit
Paras esimerkki, jolta tiukka tila suojaa, on satunnaisten globaalien muuttujien luominen. Normaalissa suorituksessa tämä koodi:
myVar = 17;
Se luo globaaliin objektiin ominaisuuden nimeltä myVar, olettaen, että et ole aiemmin ilmoittanut myVar: ta. Verkkoselaimessa yleinen objekti on yleensä ikkuna:
console.log (window.myVar);
>> 17
Jos kuitenkin lisäät "use range" -lausekkeen, näet konsolissa virheen, kuten:
Uncaught ReferenceError: myVar ei ole määritetty
Syy tähän on niin hyödyllinen, että se poimii yleisen kirjoitusvirheen. Muuttujan nimi on helppo kirjoittaa väärin, ja monet kielet huomaavat tällaisen virheen.
Mutta JavaScript oletuksena vain olettaa globaalin objektin laajuuden ja jatkaa ikään kuin mitään ei olisi vialla. Jotkut koodit voivat tarkoituksella riippua tästä käyttäytymisestä, mikä sinun tulee olla tietoinen päätettäessä käyttää tiukkaa tilaa.
Katso myös: Kuinka pitää koodisi puhtaana objektikapseloinnin avulla
Tekee epäonnistumisen selväksi
Jotkin JavaScriptin toiminnat epäonnistuvat, mutta se tekee sen hiljaa. Et ehkä tiedä tällaisista virheistä, ellet ole erityisesti tarkistanut niitä. Esimerkiksi NaN on globaalin objektin erityinen ominaisuus, joka edustaa virheellistä numeroa. Tämä ominaisuus on vain luku -tilassa, mutta voit silti yrittää kirjoittaa siihen:
NaN = 2;
>> 2
Mutta vaikka tämä tehtävä näyttää onnistuneen, se ei onnistunut:
NaN
>> NaN
Tiukassa tilassa saat todellisen virheilmoituksen, joka kertoo, että et voi määrittää NaN: lle. Tämä koodi käyttää toimintoa, jotta voit esitellä tiukkaa tilaa konsolissa:
javascript
function badNaN() { "käytä tiukkaa"; ikkuna. NaN = 2; }
>> määrittelemätön
badNan()
>> Uncaught TypeError: Ei voida määrittää vain luku -ominaisuutta "NaN" objektille "#"
osoitteessa badNaN (:1:46)
klo :1:1
Tämä on klassinen esimerkki, joka osoittaa, vaikka tietämättömyys voi olla autuutta, joskus on parempi tietää, jos jokin menee pieleen.
Varoittaa päällekkäisistä parametreista
Viimeinen esimerkki käsittelee JavaScriptin vähän tunnettua ominaisuutta. Saatat yllättää, että parametrien nimien ei tarvitse olla yksilöllisiä:
function dupeParam (a, a, c) { console.log (a); }
>> määrittelemätön
dupeParam (2, 4, 8)
>> 4
Huomaa, että JavaScript määrittää uusimman arvon kaksoisparametrille. Nyt tämä käytös ei ole erityisen hyödyllinen. Itse asiassa JavaScriptin olisi hyödyllisempää kertoa meille, että se on virhe, ja juuri sitä tiukka tila tekee:
function dupeParam (a, a, c) { "käytä tiukkaa"; }
<< Uncaught SyntaxError: Parametrin nimen kaksoiskappale ei ole sallittu tässä yhteydessä
Käytä tiukkaa tilaa saadaksesi lisää koodin luottamusta
Hyvät käytännöt ja keinot niiden toimeenpanemiseksi kulkevat käsi kädessä. Joissakin yhteyksissä, kuten ammattiohjelmointiroolissa, kannattaa harjoittaa mahdollisimman paljon kurinalaisuutta. Vaikka työskentelet vain avoimen lähdekoodin harrastusprojektissa, ylläpitäjä saattaa mieluummin käyttää tiukkaa tilaa vakiona.
Viime kädessä se on sinusta kiinni, mutta on hyödyllistä tietää, että auttava käsi on saatavilla. Ohjelmoijana sinun tulee aina olla etsimässä parhaita käytäntöjä ja mitä voit tehdä niiden noudattamiseksi.
Koodisi tulee olla selkeä ja helppohoitoinen. Tässä on useita muita ohjelmointiperiaatteita, jotka auttavat sinua puhdistamaan toimintaasi.
Lue Seuraava
- Ohjelmointi
- JavaScript
- Verkkokehitys
- Ohjelmointikielet
Bobby on teknologian harrastaja, joka työskenteli ohjelmistokehittäjänä useimmat kaksi vuosikymmentä. Hän on intohimoinen pelaamiseen, työskentelee Switch Player -lehden päätoimittajana ja on uppoutunut kaikkiin verkkojulkaisemiseen ja verkkokehitykseen.
tilaa uutiskirjeemme
Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja eksklusiivisia tarjouksia!
Klikkaa tästä tilataksesi