De moderne modus, “use strict”

Er is lange tijd JavaScript ontwikkeld zonder compatibiliteitsproblemen. Nieuwe functies werden aan de taal toegevoegd terwijl oude functionaliteit niet veranderde.

Dat had het voordeel dat bestaande code nooit werd gebroken. Maar het nadeel was dat elke fout of onvolmaakte beslissing van de makers van JavaScript voor altijd in de taal bleef hangen.

Dit was het geval tot 2009, toen ECMAScript 5 (ES5) verscheen. Het voegde nieuwe functies toe aan de taal en wijzigde enkele van de bestaande. Om de oude code te laten werken, staan de meeste van die wijzigingen standaard uit. Je moet ze expliciet inschakelen met een speciale richtlijn: "use strict".

“use strict”

De directive ziet eruit als een string: "use strict" of 'use strict'. Als het bovenaan een script staat, werkt het hele script op de “moderne” manier.

Voorbeeld:

"use strict";// this code works the modern way...

Nauwelijks gaan we functies leren (een manier om commando’s te groeperen), dus laten we alvast opmerken dat "use strict" aan het begin van een functie kan worden gezet. Door dat te doen wordt de strikte modus alleen in die functie ingeschakeld. Maar meestal gebruiken mensen het voor het hele script.

Zorg ervoor dat “use strict” bovenaan staat

Zorg ervoor dat "use strict" bovenaan je scripts staat, anders kan het zijn dat strict mode niet wordt ingeschakeld.

Strikte modus is hier niet ingeschakeld:

alert("some code");// "use strict" below is ignored--it must be at the top"use strict";// strict mode is not activated

Alleen commentaar mag boven "use strict" verschijnen.

Er is geen manier om use strict
Er is geen richtlijn zoals "no use strict" die de engine terugzet naar het oude gedrag.

Eenmaal in strict mode, is er geen weg meer terug.

Browser console

Wanneer u een ontwikkelaarsconsole gebruikt om code uit te voeren, let er dan op dat deze niet standaard use strict.

Soms, als use strict een verschil maakt, krijgt u onjuiste resultaten.

Dus, hoe kunt u use strict in de console daadwerkelijk uitvoeren?

Eerst kun je proberen om Shift+Enter in te drukken om meerdere regels in te voeren, en use strict bovenaan te zetten, zoals dit:

'use strict'; <Shift+Enter for a newline>// ...your code<Enter to run>

Het werkt in de meeste browsers, namelijk Firefox en Chrome.

Als dat niet zo is, bijvoorbeeld in een oude browser, is er een lelijke, maar betrouwbare manier om ervoor te zorgen dat use strict. Zet het in dit soort wrapper:

(function() { 'use strict'; // ...your code here...})()

Moeten we “strict” gebruiken?

De vraag klinkt misschien voor de hand liggend, maar dat is het niet.

U zou kunnen aanraden scripts te beginnen met "use strict"… Maar weet je wat cool is?

Het moderne JavaScript ondersteunt “klassen” en “modules” – geavanceerde taalstructuren (we komen er nog op terug), die use strict automatisch mogelijk maken. Dus we hoeven de "use strict" directive niet toe te voegen, als we ze gebruiken.

Dus, voor nu is "use strict"; een welkome gast bovenaan je scripts. Later, als je code allemaal in klassen en modules staat, kun je het weglaten.

Voorlopig moeten we het hebben van use strict in het algemeen.

In de volgende hoofdstukken, als we de taalfuncties leren, zullen we de verschillen zien tussen de strikte en oude modi. Gelukkig zijn het er niet veel en maken ze ons leven beter.

Alle voorbeelden in deze tutorial gaan uit van de strict mode tenzij (zeer zelden) anders aangegeven.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *