die zeitliche tote Zone in JavaScript
Während der Arbeit mit JavaScript den Begriff "Temporal Dead Zone" begegnen, wenn Sie auf Variablen zugreifen, deklariert mit let und const vor ihrer Initialisierung. Dies kann zu einem ReferenzError führen und Sie kratzen am Kopf.
Die zeitliche tote Zone
Die zeitliche tote Zone ist eine Periode in der Ausführung eines blockgeschützten Blocks. Variable (deklariert mit let oder const), wobei die Variable noch nicht definiert ist. Diese undefinierte Zeit existiert von dem Moment an, an dem die Variable bis zu dem Punkt deklariert wird, an dem ihre Initialisierung verarbeitet wird. haben einen begrenzten Umfang des Blocks, in dem sie definiert sind. Das Heben, bei dem es sich um den Mechanismus des JavaScript -Dolmetschers, sich bewegende Erklärungen an die Spitze ihres Geltungsbereichs zu bewegen, nicht gelten, gilt nicht für LET- und CONT -Variablen. Dies führt zur Erstellung einer zeitlichen toten Zone, in der die Variable bereits deklariert ist, aber nicht zugänglich ist. Zone wirft einen ReferenzError. Hier ist ein Beispiel:
console.log (avar); // undefiniert console.log (Alet); // ReferenzError: Vor der Initialisierung kann nicht auf "Alet" zugreifen var avar = 1; Sei Alet = 2; In diesem Code kann AVAR, der mit Var deklariert wurde, vor der Initialisierung zugegriffen werden, während Alet, der mit LET deklariert ist, nicht kann. Dies liegt daran, dass Avar gehoben ist, aber Alet nicht.
Zugriff auf blockscopierte Variablen, bevor sie initialisiert werden.block-scoped-Variablen in anderen Blöcken nisten.
revalance
console.log(aVar); // undefined console.log(aLet); // ReferenceError: Cannot access 'aLet' before initialization var aVar = 1; let aLet = 2;
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3