Comparaison entre 'var', 'let' et 'const'

En ce qui concerne la portée, il convient de noter que 'var' a une portée de fonction, c'est-à-dire qu'elle peut être appelée n'importe où dans la fonction où elle est déclarée. En revanche, 'let' et 'const' ont une portée de bloc, ce qui signifie qu'elles sont uniquement accessibles dans le bloc de code où elles sont déclarées, généralement un couple de {}.

En ce qui concerne la réaffectation, il est important de noter que 'var' et 'let' peuvent être réaffectées à tout moment, ce qui signifie que leur valeur peut être modifiée après leur déclaration. En revanche, une fois que 'const' a été déclarée et initialisée, elle ne peut pas être réaffectée.

En ce qui concerne le hoisting, cela signifie que la déclaration de 'var' et 'let' sont élevées en haut de leur scope, c'est-à-dire qu'elles peuvent être appelées avant leur déclaration effective. Toutefois, seule la déclaration de 'var' est "hoisted", pas son affectation.

Si l'on essaie d'appeler une variable déclarée à l'aide de 'let' avant son affectation, cela nous renverra une erreur.

En revanche, 'const' n'est pas soumise au hoisting.

Les variables déclarées avec "let" et "const" sont hoisting sans initialisation par défaut.

Les variables déclarées avec "var" sont hoisting avec comme initialisation par défaut "undefined".

Le "scope" se réfère à la portée ou à l'étendue des variables déclarées en JavaScript. En d'autres termes, le scope détermine où dans le code une variable peut être utilisée ou référencée.