Heim > Artikel > Web-Frontend > Detaillierte Einführung in den Löschoperator in Javascript_Grundkenntnisse
1. Variablen
Wenn wir über den Löschoperator in JavaScript sprechen, müssen wir zunächst die Beziehung zwischen Variablen und Attributen in JavaScript verstehen.
In JavaScript ist die Beziehung zwischen Variablen und Objekteigenschaften sehr subtil und kann in vielen Fällen sogar gleichgesetzt werden, da JavaScript vor der Ausführung des Skripts ein globales Objekt erstellt, bei dem es sich um das Fensterobjekt im Browser handelt Globale Variablen sind Attribute des globalen Objekts. Bei der Ausführung einer Funktion wird auch ein Aktivierungsobjekt erstellt. Alle lokalen Variablen sind Attribute dieses Aktivierungsobjekts. Sie können mehr über diese Javascript-Bereiche und -Abschlüsse erfahren.
Es scheint, dass Variablen Objekteigenschaften entsprechen, aber das ist nicht der Fall, zumindest nicht für den Löschoperator. Nach meinem Verständnis muss die Variablendeklaration über die var-Anweisung abgeschlossen werden. Globale Variablen, die nicht über die var-Anweisung deklariert werden, sind alle Attribute des Fensterobjekts. Dies erleichtert das Verständnis der Beziehung zwischen Variablen und Objekteigenschaften.
2. Löschoperator
Der Löschoperator wird zum Löschen von Objektattributen verwendet. Bei Referenztypwerten löscht es auch das Objektattribut selbst und nicht das Objekt, auf das das Attribut verweist. Wenn Sie Fragen haben, können Sie sich die Werte von Basistypen und Referenztypen ansehen oder den folgenden Code testen:
Darüber hinaus kann delete o.x auch als delete o["x"] geschrieben werden, was beides den gleichen Effekt hat.
3. Variablen können nicht gelöscht werden
Variablen, die über var deklariert wurden, und Funktionen, die über function deklariert wurden, haben das dontdelete-Attribut und können nicht gelöscht werden. Globale Variablen, die nicht über var (Attribute globaler Objekte) deklariert wurden
4. Die im Prototyp deklarierten Attribute und die Attribute des Objekts können nicht gelöscht werden
Die im Prototyp-Prototyp deklarierten Attribute und die mit dem Objekt gelieferten Attribute (tatsächlich sind diese Attribute auch im Prototyp-Prototyp enthalten) können als mit der Dontdelete-Funktion versehen betrachtet werden und können nicht gelöscht werden. Beispiel:
5. Mehrere Ausnahmen im Rahmen der Bewertungserklärung
Im voneval ausgeführten Code gehören mit var deklarierte Variablen zwar zum selben globalen Objekt wie normale var-deklarierte Variablen, verfügen jedoch nicht über die Dontdelete-Funktion und können gelöscht werden. Variablen, die über var innerhalb der Funktion im Eval-Code definiert werden, verfügen jedoch über dontdelete und können nicht gelöscht werden.
6. Rückgabewert von delete
delete ist ein normaler Operator und gibt true oder false zurück. Gibt „false“ zurück, wenn die Eigenschaft des gelöschten Objekts vorhanden ist und „dontdelete“ hat, andernfalls wird „true“ zurückgegeben. Ein Merkmal hierbei ist, dass „true“ auch dann zurückgegeben wird, wenn das Objektattribut nicht vorhanden ist, sodass der Rückgabewert nicht vollständig mit der Frage übereinstimmt, ob der Löschvorgang erfolgreich war oder nicht.