We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

SyntaxError: applying the 'delete' operator to an unqualified name is deprecated

Fehlermeldung

SyntaxError: applying the 'delete' operator to an unqualified name is deprecated (Firefox)
SyntaxError: Delete of an unqualified identifier in strict mode. (Chrome)

Fehlertyp

SyntaxError nur im Strict Mode.

Was ist falsch gelaufen?

Normale Variablen können in JavaScript nicht mit dem delete Operator gelöscht werden. Im Strict Mode führt der Versuch des Löschens zu einem Fehler, weil es nicht erlaubt ist.

Der delete Operator kann nur Eigenschaften eines Objektes löschen. Objekteigenschaften müssen dafür Konfigurierbar sein.

Wie oft fälschlicherweise angenommen, hat die delete Operation nichts mit dem direkten freimachen von Speicher zu tun. Speicherverwaltung wird indirekt gemacht, mehr Informationen darüber auf den Seiten Speicherverwaltung und delete.

Der Fehler tritt nur im Strict Mode auf. In normalem Code gibt die Operation einfach false zurück.

Beispiele

Der Versuch eine einfache Variable zu Löschen funktioniert in JavaScript nicht unf führt im Strict Mode zu einem Fehler:

'use strict';

var x;

// ...

delete x;

// SyntaxError: applying the 'delete' operator to an unqualified name 
// is deprecated 

Um den Inhalt einer Variable zu leeren, kann man sie auf null setzen:

'use strict';

var x;

// ...

x = null;

// x can be garbage collected

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
Mitwirkende an dieser Seite: schlagi123
Zuletzt aktualisiert von: schlagi123,