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

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