Let Javascript
Le let
mot-clé 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
ont 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 que Global Scope et Function Scope .
ES6 a introduit deux nouveaux mots-clés JavaScript importants : let
et const
.
Ces deux mots-clés fournissent Block Scope 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 can NOT be used here
Les variables déclarées avec le mot- var
clé 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 CAN be used here
Redéclarer des variables
Redéclarer une variable à l'aide du mot- var
clé 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 :
Exemple
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
Redéclarer une variable à l'aide du mot- let
clé 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 :
Exemple
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
Prise en charge du navigateur
Le let
mot-clé 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 avec prise en charge complète du mot- let
clé :
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 :
Exemple
var x = 2;
// Now x is 2
var x = 3;
// Now x is 3
Avec let
, redéclarer une variable dans le même bloc n'est PAS autorisé :
Exemple
var x = 2; // Allowed
let x = 3; // Not allowed
{
let x = 2; // Allowed
let x = 3 // Not allowed
}
{
let x = 2; // Allowed
var x = 3 // Not allowed
}
Redéclarer une variable avec let
, dans un autre bloc, EST autorisé :
Exemple
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
Laisser lever
Les variables définies avec var
sont hissées en haut et peuvent être initialisées à tout moment.
Signification : Vous pouvez utiliser la variable avant qu'elle ne soit déclarée :
Exemple
C'est acceptable:
carName = "Volvo";
var carName;
Si vous souhaitez en savoir plus sur le levage, étudiez le chapitre JavaScript Hoisting .
Les variables définies avec let
sont également hissées en haut du bloc, mais pas initialisées.
Signification : L'utilisation d'une let
variable avant qu'elle ne soit déclarée entraînera un
ReferenceError
:
Exemple
carName = "Saab";
let carName = "Volvo";