Mot-clé JavaScript Let
Le mot clé let
a été introduit dans ES6 (2015).
Les variables définies avec let
ne peuvent pas être redéclarées.
Les variables définies avec let
doivent être déclarées avant utilisation.
Les variables définies avec let
avoir une portée de bloc.
Ne peut pas être redéclaré
Les variables définies avec let
ne peuvent pas être redéclarées.
Vous ne pouvez pas redéclarer accidentellement une variable.
Avec let
vous ne pouvez pas faire ceci :
Exemple
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
Avec var
vous pouvez :
Exemple
var x = "John Doe";
var x = 0;
Portée du bloc
Avant ES6 (2015), JavaScript n'avait qu'une portée globale et une portée des fonctions.
ES6 a introduit deux nouveaux mots clés JavaScript importants : let
et const
.
Ces deux mots clés fournissent la Portée du bloc en JavaScript.
Les variables déclarées à l'intérieur d'un bloc { } ne sont pas accessibles depuis l'extérieur du bloc :
Exemple
{
let x = 2;
}
// x ne peut PAS être utilisé ici
Les variables déclarées avec le mot-clé var
NE PEUVENT PAS avoir une portée de bloc.
Les variables déclarées à l'intérieur d'un bloc { } sont accessibles depuis l'extérieur du bloc.
Exemple
{
var x = 2;
}
// x PEUT être utilisé ici
Redéclarer des variables
Redéclarer une variable à l'aide du mot-clé var
peut poser des problèmes.
Redéclarer une variable à l'intérieur d'un bloc redéclarera également la variable à l'extérieur du bloc :
Redéclarer une variable à l'aide du mot-clé let
peut résoudre ce problème.
Redéclarer une variable à l'intérieur d'un bloc ne redéclarera pas la variable à l'extérieur du bloc :
Prise en charge du navigateur
Le mot-clé let
n'est pas entièrement pris en charge dans Internet Explorer 11 ou version antérieure.
Le tableau suivant définit les premières versions de navigateur prenant entièrement en charge le mot-clé let
:
Chrome 49 | Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
Redéclarer
La redéclaration d'une variable JavaScript avec var
est autorisée n'importe où dans un programme :
Avec let
, la redéclaration d'une variable dans le même bloc n'est PAS autorisée :
Exemple
var x = 2; // Autorisé
let x = 3; // Non autorisé
{
let x = 2; // Autorisé
let x = 3 // Non autorisé
}
{
let x = 2; // Autorisé
var x = 3 // Non autorisé
}
Redéclarer une variable avec let
, dans un autre bloc, EST autorisé :
Let Levage
Les variables définies avec var
sont hissées vers le haut et peuvent être initialisées à tout moment.
Signification : Vous pouvez utiliser la variable avant qu'elle ne soit déclarée :
Si vous souhaitez en savoir plus sur le levage, étudiez le chapitre Levage JavaScript.
Les variables définies avec let
sont également hissées en haut du bloc, mais non initialisées.
Signification : L'utilisation d'une variable let
avant qu'elle ne soit déclarée entraînera un ReferenceError
: