Déclaration de variables en JavaScript

Utilisation de 'var'

L'utilisation de 'var' en JavaScript concerne la déclaration de variables qui peuvent être réaffectées et dont la portée est définie par la fonction englobante. Bien que 'var' ait été le mot-clé standard pour déclarer des variables dans les versions antérieures de JavaScript, l'introduction de 'let' et 'const' dans ECMAScript 2015 (ES6) a rendu son utilisation moins courante en raison de certaines limitations.

1
// Déclaration et initialisation d'une variable avec 'var'
2
var age = 25;
3
4
// Réaffectation d'une nouvelle valeur à la variable
5
age = 26;
6
console.log(age); // Affiche "26"

Dans cet exemple, nous déclarons une variable appelée age avec la valeur 25. Ensuite, nous réaffectons la valeur 26 à la variable et affichons la nouvelle valeur.

Cependant, il est important de noter que l'utilisation de 'var' présente certaines limitations. Par exemple, les variables déclarées avec 'var' sont accessibles en dehors du bloc dans lequel elles sont définies, tant qu'elles restent dans la fonction englobante. Cela peut entraîner des problèmes de lisibilité et des erreurs involontaires.

Voici d’ailleurs une erreur type de l’utilisation de “var” :

1
function testFunction() {
2
   if (false) {
3
      var testVariable = "Hello world";
4
   }
5
   console.log(testVariable);
6
}
7
8
testFunction(); // Résultat : "undefined"

Dans cet exemple, la variable testVariable est déclarée dans une condition qui ne sera jamais satisfaite, car la condition if (false) ne sera jamais vraie. Cependant, la variable est toujours accessible en dehors de cette condition, car elle est déclarée avec le mot-clé "var".

Lorsque la fonction testFunction() est appelée, elle affiche la valeur de la variable test avec console.log(). Comme la variable est déclarée avec "var" dans la fonction, elle est accessible tout au long de la fonction, même si elle n'a jamais été définie.

Cela peut conduire à des erreurs involontaires, car si la variable n'est pas définie dans toutes les conditions dans lesquelles elle est utilisée, elle peut causer des problèmes dans d'autres parties du code. C'est pourquoi les variables sont déclarées dans des blocs de code avec "let" ou "const" afin de limiter leur portée et d'éviter les erreurs involontaires.

1
if (true) {
2
    var prenom = "Alice";
3
}
4
console.log(prenom); // Affiche "Alice" même si la variable est déclarée dans le bloc if

De plus, les variables déclarées avec 'var' ont une particularité concernant leur portée : elles sont traitées comme si elles étaient déclarées au début de la fonction englobante, même si elles sont définies plus loin dans le code. Ce phénomène peut provoquer des comportements inattendus.

1
console.log(monNom); // Affiche "undefined" au lieu de générer une erreur
2
var monNom = "Alice"; 

Malgré ces limitations, 'var' est toujours pris en charge pour des raisons de compatibilité avec les anciens codes. Cependant, pour les débutants, il est recommandé d'apprendre et d'utiliser 'let' et 'const' pour déclarer des variables, car ils offrent une meilleure gestion de la portée et préviennent les erreurs liées au hoisting.

Définition

Le hoisting est un comportement en JavaScript où les déclarations de variables et de fonctions sont déplacées au début de leur portée respective, c'est-à-dire que la variable ou la fonction peut être utilisée avant d'être déclarée. Cela signifie que même si une variable est déclarée plus tard dans le code, elle peut être utilisée avant sa déclaration en raison du hoisting.

Utilisation de 'let'

L'utilisation de 'let' en JavaScript concerne la déclaration de variables qui peuvent être réaffectées et dont la portée est définie par le bloc englobant. 'let' a été introduit dans ECMAScript 2015 (ES6) et est devenu un choix préféré pour déclarer des variables, en particulier pour les débutants, en raison de sa gestion améliorée de la portée et de l'absence de hoisting.

Exemple

1
// Déclaration et initialisation d'une variable avec 'let'
2
let age = 25;
3
4
// Réaffectation d'une nouvelle valeur à la variable
5
age = 26;
6
console.log(age); // Affiche "26"

Dans cet exemple, nous déclarons une variable appelée age avec la valeur 25. Ensuite, nous réaffectons la valeur 26 à la variable et affichons la nouvelle valeur.

Contrairement à 'var', les variables déclarées avec 'let' ont une portée de bloc, ce qui signifie qu'elles ne sont accessibles qu'à l'intérieur du bloc dans lequel elles sont définies.

1
if (true) {
2
    let prenom = "Alice";
3
}
4
console.log(prenom); // Erreur : prenom n'est pas défini à l'extérieur du bloc if
5
Lien Replit :
1
console.log(monNom); // Erreur : monNom n'est pas défini
2
let monNom = "Alice";

Utilisation de 'const'

L'utilisation de 'const' en JavaScript concerne la déclaration de variables dont la valeur ne peut pas être modifiée une fois qu'elles ont été initialisées. 'const' a été introduit dans ECMAScript 2015 (ES6) et est devenu un choix préféré pour déclarer des variables immuables, en raison de sa gestion améliorée de la portée et de l'absence de hoisting.

ExempleExemple simple de l'utilisation de 'const'

1
// Déclaration et initialisation d'une variable avec 'const'
2
const age = 25;
3
4
// Tentative de réaffectation d'une nouvelle valeur à la variable
5
age = 26; // Erreur : tentative de réaffecter une valeur à une constante
6
Lien Replit : 

Dans cet exemple, nous déclarons une variable appelée age avec la valeur 25 en utilisant 'const'. Si nous essayons de réaffecter la valeur 26 à la variable, cela générera une erreur, car la valeur d'une constante ne peut pas être modifiée une fois qu'elle a été initialisée.

Comme pour 'let', les variables déclarées avec 'const' ont une portée de bloc, ce qui signifie qu'elles ne sont accessibles qu'à l'intérieur du bloc dans lequel elles sont définies.

1
if (true) {
2
    const prenom = "Alice";
3
}
4
console.log(prenom); // Erreur : prenom n'est pas défini à l'extérieur du bloc if

De plus, les variables déclarées avec 'const' ne sont pas hoistées, ce qui empêche les comportements inattendus et améliore la lisibilité du code.

1
console.log(monNom); // Erreur : monNom n'est pas défini
2
const monNom = "Alice";

Il est recommandé d'utiliser 'const' pour déclarer des variables immuables et de se familiariser avec 'let' pour les variables dont la valeur doit être modifiée.