Sauter les bases, je connais PHP
La base
Le JavaScript côté navigateur
Les librairies incontournables
Pour aller plus loin
Cas Pratiques (ES2015)

Les variables permettent de garder en mémoire une valeur lors de l'éxécution d'un script. Elles sont essentielles au bon fonctionnement de nos algorithme.

Ecriture

Une variable peut être déclarée à l'aide du mot clef var et ne doivent pas contenir de caractères spéciaux à l'exception des _.

var a = 2
var une_variable_plus_longue = "Ma super chaine"

Contrairement à d'autres langages de programmation il n'est pas nécessaire de mettre un ; à la fin des lignes en JavaScript (mais si vous voulez, vous pouvez ^^). L'interpréteur (ce qui va faire fonctionner notre code) va automatiquement détecter les fins de lignes et comprendre quand arréter une instruction.

Enfin, une variable peut changer de valeur et de type au cours de l'éxécution de notre algorithme.

var a = 2
a = "Je suis une chaine maintenant !"

Les types de variables

Il est possible de stocker différents types d'information dans une variable.

Les nombres

var a = 2
var b = 3.4123
var c = -509
var d = 1/3

Attention dans le cas des réels, on utilise un . pour marquer la partie décimale.

Les chaines de caractère

Les chaines de caractères permettent de stocker des mots / phrases. On les entoure de ' ou de "

var a = "Salut les gens"
var b = 'Re-Salut les gens'

Il n'y a pas de réel différence entre les simples et doubles quotes sauf si notre chaine de caractère contient des ' ou "

var a = "Ceci n'est pas poblématique"
var b = 'Ceci n\'est pas problématique'

Les booléens

Les booléens permettent de stocker une information qui sera soit vraie soit fausse

var vrai = true
var je_suis_faux = false

Les tableaux

Les tableaux permettent de stocker une liste d'information. Cette liste peut contenir n'importe quel autre type de variable (un tableau peut même contenir un autre tableau).

var eleves = ['Jean', 'Marc', 'Marion']
var demo = [true, 10, 'Marc']

Ensuite il est possible de récupérer un élément dans un tableau en utilisant la notation [i] où i est un nombre représentant l'index de l'élément à récupérer (cet index commence par 0)

eleves[0] // Jean
eleves[2] // Marion
demo[1] // 10
demo[18] // undefined

Les objets

Les objets permettent de stocker des informations plus complexes qu'une simple liste. Pour le moment, vous pouvez imaginer les objets comme une liste avec des index nommés.

var eleve = {
   clef: 'valeur',
   nom: 'Jean',
   age: 18,
   notes: [10, 4, 18] 
}

Dans un objet les "clefs" sont appellés des propriétés. Pour récupérer une valeur associée à une propriété il y a 2 notations possibles.

eleve.nom // Jean
eleve.notes // [10, 4, 18]
eleve.notes[1] // 4
// On peut aussi utiliser une notation proche de celle des tableaux
eleve['notes'] // [10, 4, 18]

De la même manière, les objets peuvent contenir des objets en valeur.

var eleve = {
    notes: {
        math: 18,
        francais: 14   
    }   
}
// Pour récupérer la note de math de l'élève on peut alors faire
eleve.notes.math // 18
eleves.nom // undefined

Types spéciaux

Enfin, lors de votre découverte du javaascript vous allez rencontrer certaines variables qui correspondent à certains cas spécifiques

undefined // quand on essaie d'accéder à 
null // 
NaN // 'not a number'

Typage faible

En javascript le typage est faible, suivant les opérations les variables peuvent changer implicitement de type.

var a = '1' 
var b = 1
a + b = '11'
// b est convertit en chaine de caractère implicitement
a * b = 1 
// a est convertit en nombre de manière implicite 
"Salut" * 3 // NaN, Not a number
// Attention aux opérations qui n'ont pas de sens :)
"43" > 1000 // false, 1000 est convertit en chaine implicitement et il compare l'ordre alphabétique

De manière générale on essaiera tant que possible de ne pas se reposer sur cette conversion implicite. Elle est plus souvent source de problèmes qu'autre chose.