Maison > interface Web > js tutoriel > En quoi « let » et « const » diffèrent-ils de « var » dans le levage JavaScript ?

En quoi « let » et « const » diffèrent-ils de « var » dans le levage JavaScript ?

Barbara Streisand
Libérer: 2024-12-31 04:18:12
original
308 Les gens l'ont consulté

How Do `let` and `const` Differ from `var` in JavaScript Hoisting?

Histage des variables déclarées avec let ou const

Alors que les variables déclarées avec var se comportent comme prévu lors du levage, celles déclarées avec let ou const présentent comportement différent.

Levage de Tous Déclarations

Toutes les déclarations JavaScript (var, let, const, function, function*, class) subissent un levage, ce qui signifie qu'elles sont reconnaissables n'importe où dans leur portée respective.

Différence d'initialisation

Cependant, la distinction entre les déclarations var/function/function* et let/const/class réside dans leur initialisation. Les déclarations Var sont initialisées avec undefined à partir du moment de la création de la liaison au début de la portée. En revanche, les déclarations let/const/class restent non initialisées jusqu'à ce que leur instruction soit évaluée.

Zone morte temporelle pour les variables non initialisées

Cet état non initialisé crée une "zone morte temporelle " où l'accès à la variable avant l'initialisation entraîne un ReferenceError.

Exemple :

x = y = "global";
(function() {
    x; // undefined
    y; // Reference error: y is not defined

    var x = "local";
    let y = "local";
}());
Copier après la connexion

let vs. const dans Hoisting

Let et const fonctionnent de manière identique en termes de levage. La différence entre elles est qu'une constante doit toujours se voir attribuer une valeur lors de sa déclaration.

Conclusion

Les variables déclarées avec let ou const sont hissées, mais elles restent non initialisées dans une zone morte temporelle jusqu'à ce que leur déclaration de déclaration soit traitée. Y accéder prématurément entraînera une ReferenceError.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal