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
Essayez-le vous-même »

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
Essayez-le vous-même »

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
Essayez-le vous-même »

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é
}
Essayez-le vous-même »

É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;
Essayez-le vous-même »

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";
Essayez-le vous-même »


Vidéo : JavaScript let