"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Quelle est la zone morte temporelle JavaScript et comment puis-je l'éviter?

Quelle est la zone morte temporelle JavaScript et comment puis-je l'éviter?

Publié le 2025-02-06
Parcourir:379

What is the JavaScript Temporal Dead Zone and How Can I Avoid It?

Comprendre la zone morte temporelle en javascript

Tout en travaillant avec JavaScript, vous pouvez rencontrer le terme "zone morte temporelle" lorsque l'accès aux variables déclarées déclarées avec let et const avant leur initialisation. Cela peut conduire à une référence, vous laissant vous gratter la tête.

La zone morte temporelle

La zone morte temporelle est une période dans l'exécution d'un blocage en bloc variable (déclarée avec LET ou const) lorsque la variable n'est pas encore définie. Cette période non définie existe à partir du moment où la variable est déclarée au point où son initialisation est traitée. ont une portée limitée au bloc dans lequel ils sont définis. L'hisson, qui est le mécanisme de l'interprète JavaScript de déplacement des déclarations en haut de leur portée, ne s'applique pas aux variables de LET et Const. Il en résulte la création d'une zone morte temporelle, où la variable est déjà déclarée mais reste inaccessible. La zone lance une perception de référence. Voici un exemple:

console.log (avar); // indéfini Console.log (Alet); // ReferenceError: Impossible d'accéder à la 'Alet' avant l'initialisation var avar = 1; LET ALET = 2; Dans ce code, Avar, déclaré avec var, peut être accessible avant l'initialisation, tandis que Alet, déclaré avec LET, ne peut pas. En effet, Avar est hissé, mais Alet n'est pas.

Situations rencontrées

Vous pouvez rencontrer la zone morte temporelle dans les situations suivantes:

accéder à des variables à vitesses de bloc avant d'être initialisées.
console.log(aVar); // undefined
console.log(aLet); // ReferenceError: Cannot access 'aLet' before initialization

var aVar = 1;
let aLet = 2;
nidification des variables à espèces de blocs dans d'autres blocs.

en utilisant des expressions de fonction immédiatement invoquées (iifes) avec des variables déclarées à l'intérieur de la fonction.

Évitement

    Pour éviter la zone morte temporelle, assurez-vous que vous initialisez les variables à vitesses de bloc avant d'y accéder. Une autre approche consiste à utiliser une variable Global Let or Conclamée en dehors de tous les blocs.
Dernier tutoriel Plus>

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