Le mot-clé let en JavaScript

Le mot-clé let en JavaScript

Déclaration de variables et gestion de la portée

(Un peu de code, un peu d’humour, beaucoup de logique)

Lorsque l’on apprend JavaScript, on finit inévitablement par rencontrer un trio. Comme dans certaines séries TV : l’un est vieux mais expérimenté, l’autre est moderne et logique, et le dernier est très sérieux… Les voici :

  • var → Retraité, mais toujours appelé pour dépanner
  • let → Moderne, organisé, respectueux des règles
  • const → Quand il donne sa parole, il ne revient jamais en arrière 😎

Dans cet article, les projecteurs sont entièrement braqués sur let.
Parce qu’en JavaScript, let signifie « moins de bugs, plus de tranquillité d’esprit ».


Qu’est-ce que let ? Quel problème résout-il ?

let est utilisé pour déclarer des variables en JavaScript.
Mais ce n’est pas ce qui le rend spécial.

let age = 25;
age = 26;

Ce code nous dit que :

  • Il existe une variable appelée age
  • Sa valeur peut changer
  • Mais pas partout 👀

Et c’est là que les choses deviennent intéressantes.


La vraie puissance : la portée de bloc (la règle des accolades)

let est à portée de bloc (block-scoped).
Cela signifie qu’il vit à l’intérieur des { } accolades — c’est son territoire.

if (true) {
  let message = "Hello World";
  console.log(message); // ✅ Fonctionne
}

console.log(message); // ❌ Erreur

Que s’est-il passé ici ?

  • message existait uniquement à l’intérieur du bloc if
  • En sortant du bloc, JavaScript a dit : « Je ne connais pas cette personne. »

Ce comportement empêche les écrasements accidentels de variables, surtout dans les gros projets.


Et si le même code utilisait var ?

if (true) {
  var message = "Hello World";
}

console.log(message); // 😬 Fonctionne

Et voilà la raison de milliers de moments du type :
« Mais cette variable vient d’où ? » dans l’histoire de JavaScript.


let dans les boucles : le héros caché 🦸‍♂️

Les boucles et let s’entendent à merveille.

for (let i = 0; i < 3; i++) {
  console.log(i);
}

console.log(i); // ❌ Erreur

Pourquoi est-ce si agréable ?

  • i appartient uniquement à la boucle
  • La boucle se termine → i disparaît
  • Tout reste propre et bien rangé

Le même exemple avec var :

for (var i = 0; i < 3; i++) {
  console.log(i);
}

console.log(i); // 😶 3

Qui t’a invité ici, i ?


Adieu au piège des variables dupliquées

Avec let, il est impossible de redéclarer une variable avec le même nom dans la même portée.

let user = "Ahmet";
let user = "Mehmet"; // ❌ Erreur

C’est une bénédiction.
Parce que JavaScript t’avertit très tôt :

« Stop ! Il y a un problème ici. »

Que ferait var ?

var user = "Ahmet";
var user = "Mehmet"; // 😐 Aucun problème

Aucun problème… pour l’instant.


Le sujet du hoisting (respire, je t’explique)

Oui, let est aussi hoisté.
Mais il doit être déclaré avant d’être utilisé.

console.log(score);
let score = 10; // ❌ ReferenceError

Que dit JavaScript ?

« Je te connais, mais attends ton tour. »

Cette situation s’appelle la Temporal Dead Zone (TDZ).
C’est en réalité la manière qu’a JavaScript de te protéger contre les erreurs.


Conseils pratiques (recette du développeur dans la vraie vie)

1️⃣ Ton premier réflexe doit être const

const pi = 3.14;

S’il doit changer :

let total = 0;

2️⃣ Attention au let global

let isLoggedIn = false;

Les variables accessibles de partout peuvent vite devenir des maux de tête.

3️⃣ Petite portée = Moins de bugs

Plus la portée est réduite, plus tu es en sécurité.


Résumé rapide (pour bien retenir)

  • let est à portée de bloc
  • Il sauve des vies dans les boucles
  • Empêche les redéclarations de variables
  • Moins de surprises, plus de contrôle
  • Indispensable en JavaScript moderne

Mot de la fin

En JavaScript, let représente cet état d’esprit :

« J’aime garder le contrôle. »

Du code plus lisible,
Moins de bugs,
Des développeurs plus heureux.

Et oui… ton futur toi aura envie d’offrir un thé à ton toi actuel ☕😄

Comments

No comments yet. Why don’t you start the discussion?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir