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.

Undeklarierte Variable wird zum globalen Objekt hinzugefügt

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.

Undeklarierte Variablen werden nicht zum globalen Objekt hinzugefügt

Man kann keine Variablen deklarieren, die als zukünftige Reservewörter verwendet werden könnten.

Reserve Word Exception

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.

Löschen einer Eigenschaft gültige Syntax

Der Löschoperator kann nicht verwendet werden, um eine Funktion zu löschen, Variable oder Argumente zu löschen.

Löschen kann nur Eigenschaften entfernen

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.

Type Error Exception

Die Verwendung von eval wird eingeschränkt:

In JS wird die eval-Funktion verwendet, um JavaScript-Ausdrücke in einem String-Format auszuführen.

Verwendung von eval

Lassen Sie uns versuchen, den gleichen Code im Strict-Modus zu implementieren:

der eval-Ausdruck wird nicht ausgeführt

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.