Visit Mozilla.org

Référence de JavaScript 1.5 Core:Opérateurs:Opérateurs spéciaux:L'opérateur delete

Un article de MDC.


Sommaire

[modifier] Résumé

L'opérateur delete supprime un objet, une propriété d'objet ou un élément à l'indice spécifié dans un tableau.

Opérateur
Implémentation : JavaScript 1.2, NES3.0
Version ECMA : ECMA-262

[modifier] Syntaxe

delete nomObjet;
delete nomObjet.propriété;
delete nomObjet[indice];
delete propriété; // autorisé uniquement au sein d'une instruction "with"

[modifier] Paramètres

nomObjet 
Le nom d'un objet.
propriété 
La propriété à supprimer d'un objet.
indice 
Un entier représentant l'indice de l'élément à supprimer d'un tableau.

[modifier] Description

La quatrième forme est uniquement valide au sein d'une instruction with, pour supprimer une propriété d'un objet.

L'opérateur delete peut être utilisé pour supprimer des variable déclarées implicitement, mais pas celles qui ont été déclarées avec l'instruction var.

Si l'opérateur delete a pu détruire son opérande, la propriété ou élément concerné renverra désormais undefined. L'opérateur delete renvoie true si l'opération est possible ou false si l'opération n'est pas possible.

x = 42;
var y = 43;
monobj = new Number();
monobj.h = 4;      // crée une propriété h
delete x;          // renvoie true (peut détruire si la déclaration est implicite)
delete y;          // renvoie false (ne peut détruire si déclaré avec var)
delete Math.PI;    // renvoie false (ne peut détruire des propriétés prédéfinies)
delete myobj.h;    // renvoie true (peut supprimer des propriétés personnalisées)
delete myobj;      // renvoie true (peut détruire un objet)

[modifier] Suppression d'éléments d'un tableau

Lorsqu'un élément de tableau est supprimé avec delete, la longueur du tableau n'est pas affectée. Par exemple, si vous supprimez a[3], a[4] est toujours a[4] et a[3] vaut undefined.

Lorsque l'opérateur delete supprime un élément de tableau, cet élément n'est plus dans le tableau. Dans l'exemple qui suit, on retire arbres[3] avec delete.

arbres = new Array("sapin", "hêtre", "cèdre", "chêne", "érable");
delete arbres[3];
if (3 in arbres) {
   // ceci ne sera pas exécuté
}

Si vous désirez qu'un élément de tableau existe mais ait la valeur undefined, utilisez le mot-clé undefined plutôt que l'opérateur delete. Dans l'exemple qui suit, arbres[3] reçoit la valeur undefined, mais l'élément du tableau existe toujours :

arbres = new Array("sapin", "hêtre", "cèdre", "chêne", "érable");
arbres[3] = undefined;
if (3 in arbres) {
   // ceci sera exécuté
}