Const
const est similaire à let, la différence est que l'on ne peut pas changer le contenu d'origine.
Exemple : Contenu unique
Une variable const ne peut pas être assignée deux fois dans la même portée.
const a=5;
a=6; // Assignment to constant variable
a a déjà un contenu
Une erreur est déclenchée -> Assignment to constant variable
Exemple : Contenu obligatoire
Il faut forcement assigner une variable const au moment de sa déclaration.
const a; // Missing initializer in const declaration
a=5;
a n'a pas de contenu.
Une erreur est déclenchée -> Missing initializer in const declaration
Attention : Assigner différent de modifier
On ne peut pas assigner deux fois une variable const, mais on peut modifier ses propriétés. Par exemple, dans le cas d'un tableau ou d'un objet (un tableau est un objet particulier).
Quand on assigne un objet, on affecte à la variable l'emplacement mémoire ou il se situe. C'est pourquoi, lorsque vous modifiez un objet vous ne modifiez pas son emplacement (mais son contenu) donc pas la constante.
const tab = [];
tab[1]=3;
tab[1]=2;
const obj = {toto:'titi'};
obj.toto = 'tata';
obj.tutu = 'tete';
Conseil : En conclusion
En conclusion, si vous avez une variable qui ne doit être assignée qu'une seule fois, utilisez const.
Sinon, si vous ne voulez pas vous empêcher de modifier le contenu de votre variable, utilisez let.
Quand à var il ne lui reste que quelques cas rare où il ne peut être remplacé par let ou const.
Remarque : Cas particulier
Dans la portée principal var ajoute la variable à l'objet Global (window sur navigateur) pas let ni const.
var a = 3;
let b = 5;
const c = 7;
window.console.log(window.a); // 3
window.console.log(window.b); // undefined
window.console.log(window.c); // undefined