--- title: >- SyntaxError: applying the 'delete' operator to an unqualified name is deprecated slug: Web/JavaScript/Reference/Errors/Delete_in_strict_mode tags: - Error - Errors - JavaScript - SyntaxError translation_of: Web/JavaScript/Reference/Errors/Delete_in_strict_mode original_slug: Web/JavaScript/Reference/Fehler/Delete_in_strict_mode ---
{{jsSidebar("Errors")}}

Fehlermeldung

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

Fehlertyp

{{jsxref("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 {{jsxref("null")}} setzen:

'use strict';

var x;

// ...

x = null;

// x can be garbage collected

Siehe auch