Équivalent de unset() en JavaScript

De Wiki PC, Wiki Informatique.

(Différences entre les versions)
(Solution(s) déjà retenue(s) comme fonctionnelle(s) :)
 
(2 versions intermédiaires masquées)
Ligne 20 : Ligne 20 :
</pre>
</pre>
'''''Attention, si vous utilisez delete tableau[x], tableau[x] sera "undefined" mais tableau.length garde - étrangement - la valeur qu'il avait quand tableau[x] faisait partie du tableau, si vous souhaitez réduire le tableau d'un élément, rendez-vous sur cette page : [[Réduire un tableau JavaScript d'un élément]].
'''''Attention, si vous utilisez delete tableau[x], tableau[x] sera "undefined" mais tableau.length garde - étrangement - la valeur qu'il avait quand tableau[x] faisait partie du tableau, si vous souhaitez réduire le tableau d'un élément, rendez-vous sur cette page : [[Réduire un tableau JavaScript d'un élément]].
 +
 +
 +
== Utiliser variable = undefined ==
 +
 +
La méthode précédente ne fonctionne pas tout le temps, particulièrement, si votre variable a été déclarée avec le mot clé ''var'', cela n'a aucun effet.
 +
 +
Il y a une autre méthode :
 +
 +
<pre>
 +
var mavariable = 'Coucou';
 +
alert(mavariable); // Coucou
 +
mavariable = undefined;
 +
alert(mavariable); // undefined
 +
alert(typeof mavariable); undefined
 +
var tableau = ['a', 'b', 'c', 'd'];
 +
tableau[2] = undefined;
 +
alert(typeof tableau[2]); // undefined
 +
</pre>
== Solution(s) déjà retenue(s) comme fonctionnelle(s) : ==
== Solution(s) déjà retenue(s) comme fonctionnelle(s) : ==
   
   
-
* Utiliser la fonction delete;
+
* Utiliser la fonction delete (ne fonctionne pas sur les variable globales déclarées par ''var'')
-
+
* Utiliser le = undefined (fonctionnelle tout le temps jusqu'à présent, si vous trouvez une exception, merci d'utiliser 'Discussion' en haut de cette page)
-
+
== Informations annexes : ==
== Informations annexes : ==

Version actuelle en date du 4 juin 2010 à 16:54

Sommaire

Description du problème :

Je cherche à désaffecter complètement une variable en JavaScript, de la même manière que l'on fait un unset($mavariable); en PHP, cependant je ne trouve pas comment faire, je ne souhaite pas lui allouer "" ou NULL ni false ni 0 comme valeur.

Solution(s) proposée(s) :

Utiliser la fonction delete

La fonction JavaScript équivalente à un unset() en PHP s'appelle delete, on l'utilise comme suit :

// Suppresion d'une variable : 

delete mavariable;

// Suppression d'un élément d'un tableau : 

delete tableau[x];

Attention, si vous utilisez delete tableau[x], tableau[x] sera "undefined" mais tableau.length garde - étrangement - la valeur qu'il avait quand tableau[x] faisait partie du tableau, si vous souhaitez réduire le tableau d'un élément, rendez-vous sur cette page : Réduire un tableau JavaScript d'un élément.


Utiliser variable = undefined

La méthode précédente ne fonctionne pas tout le temps, particulièrement, si votre variable a été déclarée avec le mot clé var, cela n'a aucun effet.

Il y a une autre méthode :

var mavariable = 'Coucou';
alert(mavariable); // Coucou
mavariable = undefined;
alert(mavariable); // undefined
alert(typeof mavariable); undefined
var tableau = ['a', 'b', 'c', 'd'];
tableau[2] = undefined;
alert(typeof tableau[2]); // undefined

Solution(s) déjà retenue(s) comme fonctionnelle(s) :

  • Utiliser la fonction delete (ne fonctionne pas sur les variable globales déclarées par var)
  • Utiliser le = undefined (fonctionnelle tout le temps jusqu'à présent, si vous trouvez une exception, merci d'utiliser 'Discussion' en haut de cette page)

Informations annexes :

Outils personnels