`strict mode` in JavaScript

`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.

YouTube Video