Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
SyntaxError: applying the 'delete' operator to an unqualified name is deprecated
Message
SyntaxError: Calling delete on expression not allowed in strict mode (Edge)SyntaxError: applying the 'delete' operator to an unqualified name is deprecated (Firefox)SyntaxError: Delete of an unqualified identifier in strict mode. (Chrome)
Dans cet article
Type d'erreur
SyntaxError, uniquement enmode strict.
Quel est le problème ?
Les variables JavaScript ne peuvent pas être supprimées grâce à l'opérateurdelete. En mode strict, toute tentative de suppression d'une variable lèvera une exception.
L'opérateurdelete sert uniquement à supprimer des propriétés sur un objet. Les propriétés d'un objet sont « qualifiées » si elles sont configurables.
Contrairement à ce qu'on pourrait penser, l'opérateurdelete n'a rien à voir avec la libération de la mémoire. La gestion de la mémoire se fait indirectement en cassant les références utilisées. Pour plus d'informations, consulter les pages surdelete etla gestion de la mémoire en JavaScript.
Cette erreur ne se produit qu'enmode strict. En mode non-strict, l'opération renvoie simplementfalse.
Exemples
Essayer de supprimer une variable normale avecdelete ne fonctionne pas, voire lève une exception en mode strict :
"use strict";var x;// ...delete x;// SyntaxError: applying the 'delete' operator to// an unqualified name is deprecatedPour libérer le contenu d'une variable, on peut la passer ànull :
"use strict";var x;// ...x = null;// x peut être ramassée par le ramasse-miettes