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é
}