Les variables et les constantes en JavaScript

Les variables sont dynamiques en JavaScript, ce sont des noms associés à des valeurs et que l'on peut réaffecter dans le programme à des valeurs de type différent: nombre, chaîne de caractères, tableau, etc.

Le nom d'une variable est une suite de lettres ou de chiffres, qui commence par une lettre ou le symbole de soulignement, ou le symbole $.
Par exemple:

_x 
nom
nom2
$nom

Le symbol $ seul représente une variable. Il est utilisé par jQuery comme équivalent à l'objet jQquery, car un nom peut être substitué à un autre. Exemple de variable de nom $:

$ = "texte";
alert($); 

Les noms sont sensibles à la casse, le nom Xeon est différent de xeon.

Declaration avec le mot réservé var ou const

Une variable se déclare par utilisation du mot réservé var:

var x;

Dans ce cas ci-dessus il faudra qu'elle soit assignée avant que l'on ne l'utilise.
Elle se déclare aussi en assignant une valeur à un nom:

x = 24;
  

Une déclaration complète serait plutôt:

var x = 24;

A l'intérieur du corps d'une fonction, le mot-clé var est obligatoire pour créer une variable locale à cette fonction. Il ne l'est pas dans l'espace global ni pour les arguments des fonctions.
Si la variable n'a pas de valeur assignée, son contenu est undefined, ce que l'on peut tester par une instruction de comparaison:

var y;
if(y == undefined)
{
    y = 0;       
}

Les constantes se déclarent avec le mot réservé const (à la place de var) et sont assignées lors de la déclaration, puis il est par définition impossible de les modifier ultérieurement.

const x = 24;

Trois primitives et des objets

Les primitives du langage sont:

Ce sont des mots réservés et d'autres mots-clés ont été réservés pour l'avenir: byte, float, int, short, etc...

Pour connaître le type d'un variable, qui est définit par la valeur qui lui est assignée, on utilise typeof. Exemple:

document.write(typeof Boolean(true));
var x = "text";
document.write(typeof x); 

Il existe des objets prédéfinis de même nom que ces primitives, mais capitalisés:

Ils sont initialisé par un argument. Exemple:

var x = new Number(50);
var y = new String("texte"); 

Si l'on associe une propriété de l'objet correspondant à une primitive,, par exemple length à une chaîne, celle-ci sera transformée dynamiquement en objet pour cette instruction. Cela ne change pas le type de la variable au-delà de l'instruction.

Démonstration:

var a = "texte";
document.write(typeof a);
document.write(a.length);
a = new String("demo");
document.write(typeof a);

La visibilité est locale à une fonction ou globale

Une variable est considérée comme globale si elle est déclarée hors d'une définition de fonction ou d'une structure. Elle est alors visible dans le corps des fonctions et dans toutes structures de l'espace global ou contenues dans des fonctions.

Une variable définie dans une fonction est visible dans cette fonction et dans le corps de toute structure contenue dans cette fonction.

Mais si elle est créée sans le mot clé var, elle fait alors partie de l'espace global, mais si elle n'a pas été définie hors de la fonction.

function()
{
  var x = 1;
  y = 2;
}

La variable x est locale tandis que y est globale.

Une variable définie globalement dans une fenêtre, peut être utilisée dans une autre si on l'associe au nom de la fenêtre, par exemple, x est définie dans une fenêtre avec le nom win2:

win2.x;

Des valeurs sont prédéfinies pour les tests conditionnels

Certaines valeurs font partie du langage:

true
vrai, une valeur booléenne.
false
faux, la valeur booléenne opposée.
undefined
Comme on l'a vu, variable non assignée.
NaN
Not A Number. Valeur indiquant que la variable ne contient pas un nombre. On peut assigner cette valeur, x = NaN, et la tester avec la fonction isNaN().
null
N'a aucune valeur assignée.

Voir aussi

© 2007-2012 Xul.fr