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:
- boolean
- string
- number
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:
- Boolean
- Number
- String
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
- Les règles de visibilité. Ces règles sont uniques à JavaScript.
- Objet. Les objets sont des variable dynamiques auxquelles on ajoute des attributs et des méthodes.