Généralité

Les variables sont dynamiques en JavaScript, ce sont des noms associés à des valeurs et que l'on peut réaffecter à 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:

var _x 
var nom
var nom2
var $nom

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

Déclaration

Une variable se déclare par utilisation du mot-clé 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. 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;       
}
Règles de visibilité

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 la fonction.

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;
Constantes

Les constantes se déclarent avec le type const (qui remplace var) et sont assignées lors de la déclaration, puis il est impossible de les modifier ultérieurement.

const x = 24;
Valeurs prédéfinies

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.