Microsoft® JScript™
Étendue des variables
 Didacticiel JScript 
 Précédent | Suivant 


Microsoft JScript intègre deux étendues : globale et locale. Si vous déclarez une variable en dehors d'une définition de fonction, il s'agit d'une variable globale et sa valeur est accessible et modifiable dans tout le programme. Si vous déclarez une variable au sein d'une définition de fonction, il s'agit d'une variable locale créée et détruite à chaque exécution de la fonction ; il est impossible d'y accéder par un élément en dehors de la fonction.

Une variable locale peut porter le même nom qu'une variable globale, mais elle n'en reste pas moins distincte. En conséquence, si vous changez la valeur d'une variable, cela n'a aucun effet sur l'autre variable. Au sein de la fonction dans laquelle la variable locale est déclarée, seule la version locale est significative.

var unCentaure = "Un cheval avec son cavalier,";  // Définition globale de unCentaure

// Code JScript omis pour plus de simplicité
function antiquites()  // Une variable locale unCentaure est déclarée dans cette fonction.
{

// Code JScript omis pour plus de simplicité
var unCentaure = "Un centaure est sans doute un guerrier Scythien à cheval,";

// Code JScript omis pour plus de simplicité
  unCentaure += ", ou plutôt, ";  // Ajout à la variable locale

// Code JScript omis pour plus de simplicité
}  // Fin de la fonction

var riendeparticulier = antiquites();
unCentaure += " vu de loin par un innocent naïf.";

/*
Au sein de la fonction, la variable contient "Un centaure est sans doute un guerrier Scythien à cheval,
ou plutôt, "; en dehors de la fonction, la variable contient le reste de la phrase :
"Un cheval avec son cavalier, vu de loin par un innocent naïf."
*/
Notez que les variables fonctionnent comme si elles étaient déclarées au début de l'étendue dans laquelle elles existent. Or, cela provoque parfois des résultats inattendus.

var unNombre = 100;
var Ajoutde = 0;

Ajoutde += unNombre;  // Ajoutde est maintenant égale à 100.
test();
Ajoutde += unNombre;  // Ajoutde est maintenant égale à 200.

function test()  {
var Nouveau = 0;  // Déclaration explicite de la variable Nouveau
// L'instruction suivante, s'il elle n'était pas en commentaire, produirait une erreur.
// Nouveau = unNombre;
// L'instruction suivante attribue la valeur 42 à la variable locale unNombre et la déclare implicitement.
unNombre = 42;
if (false)  {
    var unNombre;  // Cette instruction n'est jamais exécutée.
    unNombre = "Salut!";  // Cette instruction n'est jamais exécutée.
    }  // Fin de la condition.
}  // Fin de la définition de fonction
L'instruction en commentaire essaie d'attribuer la valeur de la variable locale unNombre à la variable locale Nouveau et échoue bien qu'une variable locale unNombre soit définie à un autre endroit de la fonction et y demeure. Aucune valeur n'est attribuée à la variable unNombre lorsque cette instruction apparaît dans le code ; par conséquent, cette variable est undefined.


© 1998 Microsoft Corporation. Tous droits réservés.