Équivalent de unset() en JavaScript
De Wiki PC, Wiki Informatique.
(→Solution(s) déjà retenue(s) comme fonctionnelle(s) :) |
|||
(4 versions intermédiaires masquées) | |||
Ligne 1 : | Ligne 1 : | ||
== Description du problème : == | == 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 | + | 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) : == | == Solution(s) proposée(s) : == | ||
Ligne 21 : | 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)