JavaScript Let
Le mot-clé let a été introduit dans ES6 (2015) .
Les variables déclarées avec let ont une portée de bloc .
Les variables déclarées avec let doivent être déclarées avant leur utilisation.
Les variables déclarées avec let ne peuvent pas être redéclarées dans la même portée.
Portée de Bloc
Avant ES6 (2015), JavaScript n'avait pas de portée de bloc .
JavaScript avait une portée globale et une portée de fonction .
ES6 a introduit les deux nouveaux mots-clés JavaScript : let et const .
Ces deux mots-clés ont fourni une portée de bloc dans JavaScript :
Exemple
Les variables déclarées à l'intérieur d'un bloc { } ne peuvent pas être accessibles depuis l'extérieur du bloc :
{
let x = 2;
}
// x ne peut PAS être utilisé ici Portée Globale
Les variables déclarées avec le mot-clé var ont toujours une portée globale .
Les variables déclarées avec le mot-clé var ne peuvent PAS avoir de portée de bloc :
Exemple
Les variables déclarées avec var à l'intérieur d'un bloc { } peuvent être accessibles depuis l'extérieur du bloc :
{
var x = 2;
}
// x PEUT être utilisé ici Ne Peut Pas Être Redéclaré
Les variables définies avec let ne peuvent pas être redéclarées.
Vous ne pouvez pas accidentellement redéclarer une variable déclarée avec let .
Avec let , vous ne pouvez pas faire cela :
let x = "John Doe";
let x = 0; Les variables définies avec var peuvent être redéclarées.
Avec var , vous pouvez faire cela :
var x = "John Doe";
var x = 0; Redéclaration de Variables
Redéclarer une variable en utilisant le 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 :
Exemple
var x = 10;
// Ici x est 10
{
var x = 2;
// Ici x est 2
}
// Ici x est 2 Redéclarer une variable en utilisant le 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 :
Exemple
let x = 10;
// Ici x est 10
{
let x = 2;
// Ici x est 2
}
// Ici x est 10 Différence Entre var, let et const
| Portée | Redéclarer | Réassigner | Élevé | Lie ceci | |
| var | Non | Oui | Oui | Oui | Oui |
| let | Oui | Non | Oui | Non | Non |
| const | Oui | Non | Non | Non | Non |
Qu'est-ce qui est Bon ?
let et const ont une portée de bloc .
let et const ne peuvent pas être redéclarés .
let et const doivent être déclarés avant leur utilisation.
let et const ne lient pas à this .
let et const ne sont pas élevés .
Qu'est-ce qui n'est Pas Bon ?
var n'a pas besoin d'être déclaré.
var est élevé.
var lie à ceci.
Support des Navigateurs
Les mots-clés let et const ne sont pas pris en charge dans Internet Explorer 11 ou les versions antérieures.
Le tableau suivant définit les premières versions de navigateurs avec un support complet :
| Chrome 49 | Edge 12 | Firefox 36 | Safari 11 | Opera 36 |
| Mar, 2016 | Juil, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
Redéclaration
Redéclarer une variable JavaScript avec var est autorisé n'importe où dans un programme :
Exemple
var x = 2;
// Maintenant x est 2
var x = 3;
// Maintenant x est 3 Avec let , redéclarer une variable dans le même bloc n'est PAS autorisé :
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é :
Exemple
let x = 2; // Autorisé
{
let x = 3; // Autorisé
}
{
let x = 4; // Autorisé
} Élévation de Let
Les variables définies avec var sont élevé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 OK :
carName = "Volvo";
var carName; Si vous voulez en savoir plus sur l'élévation, étudiez le chapitre Élévation en JavaScript .
Les variables définies avec let sont également élevées en haut du bloc, mais pas initialisées.
Signification : Utiliser une variable let avant qu'elle ne soit déclarée entraînera une ReferenceError :
Exemple
carName = "Saab";
let carName = "Volvo";