Schauen wir uns die verschiedenen Szenarien an, bei denen Ihnen diese einfache Änderung helfen kann.
Eine Variable wird nicht zum Global-/Fensterobjekt hinzugefügt, wenn sie nicht deklariert ist.
Standardmäßig wird eine nicht deklarierte Variable zum Global-/Fenster-Objekt hinzugefügt, wenn sie definiert ist. Dies kann zu einem Fehler führen und sogar schwer zu finden sein.
Um solche Szenarien zu vermeiden, können wir use strict deklarieren. Der Strict-Modus lässt die Verwendung von Variablen, die nicht deklariert wurden, nicht zu.
Man kann keine Variablen deklarieren, die als zukünftige Reservewörter verwendet werden könnten.
Wie wir im obigen Beispiel sehen können, konnten wir auf der linken Seite eine Variable deklarieren und sie let nennen, was ein reserviertes ES6-Schlüsselwort ist. Technisch gesehen sollte dies eine Exception auslösen, wird aber vom Compiler ignoriert.
Auch auf der rechten Seite können wir sehen, dass wir einen Syntaxfehler bekommen haben, indem wir in einen strikten Operationskontext gewechselt haben. Wir sollten uns für den strikten Modus entscheiden, um die Verwendung eines reservierten Schlüsselworts für Variablennamen zu vermeiden.
Es wird verhindert, dass man Funktionen, Variablen und Funktionsargumente löscht:
Der Delete-Operator an sich wird verwendet, um eine Eigenschaft eines Objekts zu entfernen.
Der Löschoperator kann nicht verwendet werden, um eine Funktion zu löschen, Variable oder Argumente zu löschen.
Wenn es sich im Strict-Modus befindet, wird eine Type Error Exception geworfen. Das passiert, weil wir versuchen, eine Eigenschaft zu löschen, aber den Wert selbst.
Die Verwendung von eval wird eingeschränkt:
In JS wird die eval-Funktion verwendet, um JavaScript-Ausdrücke in einem String-Format auszuführen.
Lassen Sie uns versuchen, den gleichen Code im Strict-Modus zu implementieren: