JavaScript entwickelte sich lange Zeit ohne Kompatibilitätsprobleme. Der Sprache wurden neue Funktionen hinzugefügt, während sich die alte Funktionalität nicht änderte.
Das hatte den Vorteil, dass vorhandener Code nie beschädigt wurde. Der Nachteil war jedoch, dass jeder Fehler oder jede unvollkommene Entscheidung der JavaScript-Entwickler für immer in der Sprache hängenblieb.
Dies war bis 2009 der Fall, als ECMAScript 5 (ES5) erschien. Es fügte der Sprache neue Funktionen hinzu und modifizierte einige der vorhandenen. Damit der alte Code weiterhin funktioniert, sind die meisten dieser Änderungen standardmäßig deaktiviert. Sie müssen sie explizit mit einer speziellen Anweisung aktivieren: "use strict"
.
Die Direktive sieht aus wie eine Zeichenfolge: "use strict"
oder 'use strict'
. Wenn es sich oben in einem Skript befindet, funktioniert das gesamte Skript auf „moderne“ Weise.
Zum Beispiel:
„strikt verwenden“; // Dieser Code funktioniert auf moderne Weise ...
Bald werden wir Funktionen (eine Möglichkeit zum Gruppieren von Befehlen) lernen. Beachten Sie daher im Voraus, dass "use strict"
am Anfang einer Funktion stehen kann. Dadurch wird der strikte Modus nur in dieser Funktion aktiviert. Aber normalerweise verwenden die Leute es für das gesamte Drehbuch.
Stellen Sie sicher, dass „strikt verwenden“ ganz oben steht
Bitte stellen Sie sicher, dass "use strict"
ganz oben in Ihren Skripten steht, andernfalls ist der strikte Modus möglicherweise nicht aktiviert.
Der strikte Modus ist hier nicht aktiviert:
alarm("irgendein Code"); // „use strict“ unten wird ignoriert – es muss oben stehen „strikt verwenden“; // Strikter Modus ist nicht aktiviert
Über "use strict"
dürfen nur Kommentare erscheinen.
Es gibt keine Möglichkeit use strict
abzubrechen
Es gibt keine Anweisung wie "no use strict"
die die Engine auf das alte Verhalten zurücksetzt.
Sobald wir in den strikten Modus wechseln, gibt es kein Zurück mehr.
Wenn Sie zum Ausführen von Code eine Entwicklerkonsole verwenden, beachten Sie bitte, dass diese standardmäßig nicht use strict
.
Manchmal, wenn use strict
einen Unterschied macht, erhalten Sie falsche Ergebnisse.
Wie kann man also use strict
?
Zuerst können Sie versuchen, Umschalt + Eingabetaste zu drücken, um mehrere Zeilen einzugeben, und use strict
an die Spitze setzen, etwa so:
'strikt verwenden'; <Umschalt+Eingabetaste für eine neue Zeile> // ...dein Code <Eingabetaste zum Ausführen>
Es funktioniert in den meisten Browsern, nämlich Firefox und Chrome.
Wenn dies nicht der Fall ist, z. B. in einem alten Browser, gibt es eine hässliche, aber zuverlässige Möglichkeit, use strict
sicherzustellen. Legen Sie es in diese Art von Verpackung:
(Funktion() { 'strikt verwenden'; // ...dein Code hier... })()
Die Frage mag offensichtlich klingen, sie ist es aber nicht.
Man könnte empfehlen, Skripte mit "use strict"
zu starten … Aber wissen Sie, was cool ist?
Modernes JavaScript unterstützt „Klassen“ und „Module“ – fortgeschrittene Sprachstrukturen (auf die wir sicherlich noch zurückkommen werden), die use strict
automatisch ermöglichen. Daher müssen wir die Anweisung "use strict"
nicht hinzufügen, wenn wir sie verwenden.
Also, vorerst "use strict";
ist ein gern gesehener Gast ganz oben in Ihren Skripten. Später, wenn Ihr Code ausschließlich aus Klassen und Modulen besteht, können Sie ihn weglassen.
Mittlerweile haben wir etwas über use strict
im Allgemeinen erfahren.
In den nächsten Kapiteln werden wir beim Erlernen der Sprachfunktionen die Unterschiede zwischen dem strengen und dem alten Modus erkennen. Zum Glück gibt es nicht viele davon und sie machen unser Leben tatsächlich besser.
Alle Beispiele in diesem Tutorial gehen vom strikten Modus aus, sofern nicht (sehr selten) etwas anderes angegeben ist.