`strict mode` in JavaScript
Dit artikel legt strict mode
in JavaScript uit.
YouTube Video
strict mode
in JavaScript
In JavaScript is strict mode
een functie die in ECMAScript 5 (ES5) is geïntroduceerd om code veiliger te maken en fouten te voorkomen. Door strict mode te gebruiken, worden bepaalde tolerante syntaxis en potentieel risicovolle functies uitgeschakeld, en worden strengere foutcontroles afgedwongen. Dit stelt ontwikkelaars in staat om onverwacht gedrag te vermijden en robuustere en beter presterende code te schrijven.
strict mode
inschakelen
Om strict mode
in te schakelen, voeg de volgende directive toe aan het begin van je code.
1"use strict";
Deze declaratie kan worden toegepast op het gehele script of per functie. Bijvoorbeeld, als het wordt toegepast op het hele script, kun je het als volgt schrijven:.
1"use strict";
2
3function example() {
4 // Strict mode is applied
5}
Als het per functie wordt toegepast, kun je het als volgt schrijven:.
1function example() {
2 "use strict";
3 // Strict mode is applied only within this function
4}
strict mode
wordt toegepast per scope en kan daarom ook binnen een functie worden ingeschakeld. Aangezien strict mode
standaard is ingeschakeld in modules, hoef je het niet afzonderlijk binnen de module te declareren.
Belangrijkste eigenschappen en verschillen van strict mode
Het gebruik van strict mode
verandert enkele standaardgedragingen van JavaScript. Hier zijn de belangrijkste voorbeelden.
Verbod op impliciete globale variabelen
In gewone JavaScript worden variabelen die niet worden gedeclareerd automatisch als globale variabelen aangemaakt, maar in strict mode
resulteert dit in een fout.
1"use strict";
2
3x = 10; // Error: x is not defined
Variabelen moeten altijd worden gedeclareerd met var
, let
of const
.
Beperking op het gebruik van gereserveerde woorden
Mogelijke toekomstige JavaScript-sleutelwoorden (zoals implements
, interface
, package
, enz.) mogen niet worden gebruikt als variabele- of functienamen in strict mode
.
1"use strict";
2
3var package = "strict mode"; // Error: Unexpected strict mode reserved word
Wijzigingen in het gedrag van this
In normale modus verwijst this
binnen een functie naar het globale object (bijv. window
in browsers), maar in strict mode
is this
undefined
.
1"use strict";
2
3function example() {
4 console.log(this); // undefined
5}
6
7example();
Dit helpt bugs te voorkomen die worden veroorzaakt door het onjuist gebruik van this
.
Verbod op het verwijderen van niet-verwijderbare eigenschappen
In normale modus wordt het proberen te verwijderen van niet-verwijderbare objecteigenschappen genegeerd zonder foutmelding, maar in strict mode
resulteert dit in een fout.
1"use strict";
2
3var obj = Object.freeze({name: "John"});
4delete obj.name; // Error: Cannot delete property 'name'
Verbod op dubbele parameternamen
In normale modus is het toegestaan om parameters met dezelfde naam meerdere keren te declareren, maar in strict mode
veroorzaakt dit een fout.
1"use strict";
2
3function example(a, a) {
4 // Error: Duplicate parameter name not allowed in this context
5}
Verbod op het gebruik van de with
-instructie
De with
-instructie kan de leesbaarheid van code verminderen en is niet toegestaan in strict mode
.
1"use strict";
2
3with (Math) {
4 // Error: Strict mode code may not include a with statement
5}
Voordelen van strict mode
strict mode
verbetert de veiligheid en efficiëntie van code op verschillende manieren.
Verbeterde foutenopsporing
In strict mode
worden fouten die in normale modus worden overzien gedetecteerd, zodat ontwikkelaars potentiële bugs vroeg kunnen opsporen. Het voorkomt bijvoorbeeld het aanmaken van onbedoelde globale variabelen en het misbruik van gereserveerde woorden.
Verbeterde prestaties
In strict mode
kunnen JavaScript-engines code efficiënter optimaliseren. Daardoor kan de uitvoeringssnelheid verbeteren.
Verbeterde codeveiligheid
De omgang met this
wordt strenger, waardoor toegang tot onnodige globale objecten wordt voorkomen en de codeveiligheid wordt verbeterd. Bovendien voorkomt de beperking van het gebruik van gereserveerde woorden toekomstige conflicten met sleutelwoorden.
Compatibiliteit en overwegingen
strict mode
werd geïntroduceerd in ECMAScript 5 en wordt niet ondersteund door browsers die eerder zijn uitgebracht. Het inschakelen van strict mode
wordt echter simpelweg genegeerd door niet-ondersteunde browsers, zonder het script te breken. Daarom kan het meestal veilig worden gebruikt.
Bij het introduceren van strict mode
in een groot bestaand project is grondig testen cruciaal om onverwachte fouten te vermijden.
Conclusie
strict mode
in JavaScript is een uiterst nuttige functie om de codekwaliteit te verbeteren. Vooral voor grootschalige projecten of teamontwikkeling wordt aanbevolen om de strikte modus actief te gebruiken om onverwachte bugs en fouten te voorkomen en de leesbaarheid en onderhoudbaarheid van de code te verbeteren.
Het begrijpen en correct toepassen van strict mode
helpt JavaScript-valkuilen te vermijden en zorgt voor veiliger en efficiënter programmeren.
Je kunt het bovenstaande artikel volgen met Visual Studio Code op ons YouTube-kanaal. Bekijk ook het YouTube-kanaal.