JavaScript ir piedodoša valoda. Dažas no tās sintakses nav obligātas, un valoda pēc kļūdām atkopjas ar lielāku precizitāti nekā daudzas citas. Taču šāda turēšana rokās ir saistīta ar sodu: var būt vieglāk ieviest kļūdas, un nekonsekventu kodu ir grūtāk nolasīt.
Par laimi, ja vēlaties ievērot lielāku disciplīnu, ir vienkāršs veids, kā to izdarīt: stingrs režīms. Stingrais režīms ir veids, kā lūgt JavaScript izlēmīgāk reaģēt, ja kodā rodas problēmas.
Kas ir stingrais režīms?
Vairākās valodās tiek izmantots stingra režīma jēdziens: režīms, kas stingrāk novērtē un palaiž kodu. Iespējams, esat iepazinies ar HTML strikto doctype, kas noveco noteiktus elementus un atribūtus.
Perl, citai interpretētai skriptu valodai, jau sen ir bijis savs stingrs režīms. Šis režīms aizliedz noteiktus nedrošas izteiksmes veidus.
Kā izmantot stingro režīmu JavaScript?
Skripta iekšpusē ievietojiet paziņojumu “izmantot stingru” tieši augšpusē, pirms citiem paziņojumiem:
// viss šis skripts būs stingrā režīmā
"izmantojiet stingri";
Ņemiet vērā, ka pirms tā varat iekļaut komentāru, bet ne paziņojumus. Varat iespējot stingro režīmu JavaScript failā vai skripta bloka sākumā HTML failā. Varat arī iespējot stingro režīmu, pamatojoties uz katru funkciju:
function strict() {
// Funkcijas līmeņa stingrā režīma sintakse
"izmantojiet stingri";
atgriezties "Šī funkcija ir stingra";
}
function loose() {
return "Šī funkcija NAV stingra";
}
Kad esat iespējojis stingro režīmu, noteikti pārbaudiet savu kodu. Ja strādājat ar tīmekli, atveriet a JavaScript konsole, lai jūs varētu identificēt visas jaunas kļūdas.
Ko dara JavaScript stingrais režīms?
Īsāk sakot, stingrais režīms būs mazāk piedodošs attiecībā uz noteiktu veidu problemātisku kodu. Tā vietā, lai ignorētu problēmas un turpinātu izpildi, noteiktas kļūdas apturēs skriptu. Bieži vien tas ir drošāk nekā turpināt nevēlamos apstākļos.
Novērš nejaušu globālo izplatību
Labākais piemērs, no kura aizsargā stingrais režīms, ir nejaušu globālo mainīgo izveide. Parastā izpildē šis kods:
myVar = 17;
Tas globālajā objektā izveidos rekvizītu ar nosaukumu myVar, pieņemot, ka iepriekš neesat deklarējis myVar. Tīmekļa pārlūkprogrammā globālais objekts parasti ir logs:
console.log (window.myVar);
>> 17
Tomēr, ja iekļaujat paziņojumu “izmantot stingru”, konsolē tiks parādīta kļūda, piemēram:
Uncaught ReferenceError: myVar nav definēts
Iemesls tam, ka tas ir tik noderīgs, ir tas, ka tas uztver bieži sastopamas drukas kļūdas. Ir viegli nepareizi ievadīt mainīgā nosaukumu, un daudzas valodas mūs uztvertu par šādu kļūdu.
Bet JavaScript pēc noklusējuma vienkārši uzņemas globālā objekta darbības jomu un turpinās tā, it kā nekas nebūtu kārtībā. Daži kodi var būt apzināti atkarīgi no šīs darbības, un tas ir jāņem vērā, pieņemot lēmumu izmantot stingro režīmu.
Skatīt arī: Kā saglabāt savu kodu tīru, izmantojot objektu iekapsulēšanu
Neveiksmi skaidri norāda
Dažas JavaScript darbības neizdodas, taču tas notiek klusi. Jūs, iespējams, nezināt par šādām kļūdām, ja vien tās īpaši nepārbaudāt. Piemēram, NaN ir īpašs globālā objekta rekvizīts, kas apzīmē nederīgu skaitli. Šis rekvizīts ir tikai lasāms, taču joprojām varat mēģināt tajā rakstīt:
NaN = 2;
>> 2
Bet, lai gan šķiet, ka šis uzdevums ir izdevies, tas neizdevās:
NaN
>> NaN
Stingrajā režīmā jūs saņemsit faktisku kļūdu, norādot, ka nevarat piešķirt NaN. Šis kods izmanto funkciju, lai jūs varētu demonstrēt stingro režīmu konsolē:
javascript
function badNaN() { "izmantot stingru"; logs. NaN = 2; }
>> nenoteikts
badNan()
>> Nenoķertā tipa kļūda: nevar piešķirt tikai lasīšanas rekvizītu "NaN" objektam "#"
vietnē badNaN (:1:46)
pie :1:1
Šis ir klasisks piemērs, kas parāda, lai gan neziņa var būt svētlaime, dažreiz ir labāk zināt, ja kaut kas noiet greizi.
Brīdina par dublētiem parametriem
Pēdējais piemērs attiecas uz maz zināmu JavaScript līdzekli. Jūs varētu pārsteigt, uzzinot, ka parametru nosaukumiem nav jābūt unikāliem:
function dupeParam (a, a, c) { console.log (a); }
>> nenoteikts
dupeParam (2, 4, 8)
>> 4
Ņemiet vērā, ka JavaScript dublētam parametram piešķir jaunāko vērtību. Tagad šī uzvedība nav īpaši noderīga. Patiesībā būtu noderīgāk, ja JavaScript paziņotu mums, ka tā ir kļūda, un tieši to dara stingrais režīms:
function dupeParam (a, a, c) { "izmantot stingru"; }
<< Uncaught SyntaxError: parametra nosaukuma dublikāts šajā kontekstā nav atļauts
Izmantojiet stingro režīmu, lai iegūtu papildu koda pārliecību
Laba prakse un līdzekļi to īstenošanai iet roku rokā. Dažos gadījumos, piemēram, profesionālas programmēšanas lomā, jūs vēlēsities ievērot pēc iespējas vairāk disciplīnas. Pat ja jūs tikai strādājat pie vaļasprieka atvērtā pirmkoda projekta, uzturētājs var izvēlēties standarta režīmā izmantot stingro režīmu.
Galu galā tas ir atkarīgs no jums, taču ir noderīgi zināt, ka ir pieejama palīdzīga roka. Kā programmētājam jums vienmēr vajadzētu meklēt labāko praksi un to, ko varat darīt, lai to īstenotu.
Jūsu kodam jābūt skaidram un viegli uzturējamam. Šeit ir vairāki citi programmēšanas principi, kas palīdzēs jums sakārtot savu darbību.
Lasiet Tālāk
- Programmēšana
- JavaScript
- Web izstrāde
- Programmēšanas valodas
Bobijs ir tehnoloģiju entuziasts, kurš gandrīz divus gadu desmitus strādāja par programmatūras izstrādātāju. Viņš aizraujas ar spēlēm, strādā par žurnāla Switch Player galveno redaktoru un ir iegrimis visos tiešsaistes publicēšanas un tīmekļa izstrādes aspektos.
Abonējiet mūsu biļetenu
Pievienojieties mūsu informatīvajam izdevumam, lai saņemtu tehniskos padomus, pārskatus, bezmaksas e-grāmatas un ekskluzīvus piedāvājumus!
Noklikšķiniet šeit, lai abonētu