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.
Histing de toutes les déclarations
Toutes les déclarations JavaScript (var, let, const, function, function*, class) subissent un levage, ce qui signifie qu'ils sont reconnaissables n'importe où dans leur portée respective.
Différence d'initialisation
Cependant, la distinction entre var/ Les déclarations function/function* et let/const/class résident 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"; }());
let vs. const in 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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3