Articles

5 choses à savoir sur l’opérateur delete en JavaScript

.

Photo de Markus Winkler sur Unsplash

En JavaScript, l’opérateur delete est utilisé pour supprimer une propriété d’un objet. Après avoir supprimé la propriété réelle, cette propriété ne sera plus accessible et renvoie undefined.

L’invocation de l’opérateur delete renvoie true lorsqu’il supprime une propriété et false sinon. il n’est efficace que sur les propriétés d’un objet, il n’a aucun effet sur les noms de variables ou de fonctions.

L’opérateur delete ne doit pas être utilisé sur les propriétés prédéfinies des objets JavaScript comme windowMath et Date. Cela peut faire planter votre application.

Examinons à la loupe quelques faits concernant l’opérateur delete.

Supprimer les propriétés d’un objet

La seule façon de supprimer complètement les propriétés d’un objet en JavaScript est d’utiliser l’opérateur delete.

.

Si la propriété que vous essayez de supprimer n’existe pas, delete n’aura aucun effet et pourra retourner true.

Peut-on supprimer des variables en Javascript ?

L’opérateur delete supprime une propriété d’un objet. Il ne peut pas supprimer une variable. Toute propriété déclarée avec var ne peut être supprimée de la portée globale ou de la portée d’une fonction.

Si vous déclarez une variable sans var, elle peut être supprimée. Examinons l’exemple ci-dessous.

opérateur de suppression en JavaScript

La variable déclarée sans le mot clé var la stocke en interne comme une propriété de l’objet window. Nous pouvons donc supprimer les propriétés de l’objet window.

Peut-on supprimer les valeurs d’un tableau ?

Puisque les tableaux JavaScript sont des objets, les éléments peuvent être supprimés en utilisant delete.

.

delete supprimera la propriété de l’objet, mais ne réindexera pas le tableau et ne mettra pas à jour sa longueur. Cela donne l’impression que c’est undefined.

L’utilisation de delete peut laisser des trous indéfinis dans le tableau. Utilisez plutôt pop()shift(), ou splice().

Peut-on supprimer des objets intégrés ?

Suppression d’objets intégrésdans les objets comme MathDate, et les objets window ne sont pas sûrs, et ils peuvent faire planter toute votre application.

Suppression des propriétés non configurables

Les propriétés des objets, outre un value, possèdent trois attributs spéciaux :

  • writable – si true, la valeur peut être modifiée, sinon, elle est en lecture seule.
  • enumerable – si true, elle est listée dans les boucles, sinon, elle n’est pas listée.
  • configurable – si true, la propriété peut être supprimée ou les attributs peuvent être modifiés, sinon, elle ne peut pas être modifiée.

.

Les valeurs attribuées en utilisant Object.defineProperty et définies sur configurable: false dans un objet ne peuvent pas être supprimées.

En mode strict, il lancera une erreur si vous essayez de supprimer une propriété non configurable.

.

Conclusion

delete est le seul vrai moyen de supprimer les propriétés d’un objet sans aucun reste, mais elle fonctionne ~100 fois plus lentement si vous utilisez delete dans des boucles.

La solution alternative consiste à définir la valeur à undéfinie comme object = undefined. Cela ne supprime pas complètement la propriété, il fixe juste la valeur à undefined. le choix n’est pas exactement une solution proéminente, mais si vous l’utilisez avec soin alors vous serez en mesure d’améliorer les performances.

C’est tout ! J’espère que ce texte pourra vous aider à perforer l’opérateur delete

Merci de nous avoir lu 🙂

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *