« Programmation JavaScript/Variables » : différence entre les versions

Contenu supprimé Contenu ajouté
Touffy (discussion | contributions)
m →‎Types : lien
Touffy (discussion | contributions)
Ligne 94 :
=== undefined ===
Une variable est du type undefined dans trois cas:
* AprésAprès déclaration '''var''' sans affectation
* Quand elle n'a pas été déclarée
<source lang="javascript">
<pre>
var ma_nouvelle_varmaNouvelleVar; // Déclarée mais pas affectée
alert(typeof var_undeclared); // Affiche undefined (si elle n'a effectivement pas été affecté)
alert (typeof mon_ephemeremaNouvelleVar); // Affiche undefined
</pre>
</source>
* Aprés déclaration sans affectation
* Si on lui affecte explicitement la valeur <code>undefined</code>, ou qu'on lui affecte le résultat d'une expression qui retourne cette valeur.
<pre>
<source lang="javascript">
var ma_nouvelle_var; // Déclarée mais pas affectée
alert(typeofvar ma_nouvelle_var);jeSaisPas // Affiche= undefined
var caNExistePas = "impossible".enFrancais
</pre>
alert (typeof jeSaisPas) // Affiche undefined
* Aprés effacement avec la primitive '''delete'''
alert (typeof caNExistePas) // Affiche undefined
<pre>
</source>
mon_ephemere = "exister";
* Si elle n'a pas été déclarée ni utilisée, ou bien qu'elle a été effacée par l'opérateur [[../Opérateurs#Dé-référencement (delete)|delete]].
delete mon_ephemere; // la vie est courte
<source lang="javascript">
alert (typeof mon_ephemere); // Affiche undefined
alert(typeof var_undeclaredvarPasDeclaree); // Affiche undefined (si elle n'a effectivement pas été affectéaffectée)
</pre>
mon_ephemeremonEphemere = "exister";
delete mon_ephemeremonEphemere; // la vie est courte
alert (typeof monEphemere); // Affiche undefined
 
alert(varPasDeclaree) // erreur !!
</source>
 
À noter : dans les deux premiers cas, la variable existe et possède une valeur (<code>undefined</code>). On peut lire cette valeur sans provoquer d'erreur. Dans le troisième cas cependant, la variable n'existe pas : l'opérateur <code>typeof</code> retourne "undefined", mais lire directement la valeur de la variable provoque une erreur.
 
=== number ===