Remi Forax
Historiquement, on utilisait 'var' pour déclarer les variables locales
en JavaScript.
EcmaScript 6 (2015), introduit 'let' et 'const'
car 'var' est pas scopé comme il faudrait.
La déclaration d'un 'var' est
les '{' '}' dans lequel elle est déclarée.
Les 'var' sont déclarées en
Les deux codes sont équivalents !
Il est possible de demander la valeur d'une variable qui sera déclarée plus tard :(
On peut aussi accéder au variables de boucle après la boucle.
let meurt quand le block meurt, au niveau de l'accolade fermante du block.
Avant EcmaScript 6, on utilise une fonction anonyme intermédiaire.
On doit mettre la fonction entre '(' ')', sinon elle doit être nommée.
Ce pattern s'appel IIFE (Immediately Invoked Function Expression)
const sert à indiquer une variable que l'on peut initialiser qu'une seule fois.
On ne peut pas déclarer un 'const' sans l'initialiser.
Il n'est pas nécessaire de déclarer un bloc de code
(avec les { et } ) après un if/else/while/for
s'il n'y a qu'une seule instruction
La bonne pratique est de toujours mettre des blocs
pour éviter les bugs idiots
Les règles ASI (Automatic Semicolon Insertion) insère automatiquement les ';'
Mais la grammaire de JavaScript est ambigüe
La bonne pratique est de mettre des ';'
Une fonction peut modifier les variables
de la function englobante (ahhh).
Cela rend le code dure à lire !
Solution utiliser 'const'.
Si on déclare une variable sans let/const ou var,
elle est globale et accessible par tout le monde.
Les globales sont interdites par la convention de Genève !
Effectuer une opération arithmétique sur des valeurs de type différents donne des résultats surprenants