--- 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 ---
SyntaxError: applying the 'delete' operator to an unqualified name is deprecated (Firefox) SyntaxError: Delete of an unqualified identifier in strict mode. (Chrome)
{{jsxref("SyntaxError")}} nur im Strict Mode.
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.
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