MDN will switch to a new design later today, a sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

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

Message

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

Type d'erreur

SyntaxError, uniquement en mode strict.

Quel est le problème ?

Les variables JavaScript ne peuvent pas être supprimées grâce à l'opérateur delete. En mode strict, toute tentative de suppression d'une variable lèvera une exception.

L'opérateur delete 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érateur delete 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 sur delete et la gestion de la mémoire en JavaScript.

Cette erreur ne se produit qu'en mode strict. En mode non-strict, l'opération renvoie simplement false.

Exemples

Essayer de supprimer une variable normale avec delete 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 deprecated 

Pour libérer le contenu d'une variable, on peut la passere à null :

'use strict';

var x;
// ...
x = null;

// x peut être ramassée par le ramasse-miettes

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,