Zone Morte Temporelle (TDZ) et Levage en JavaScript :
Exemple :
console.log(maVar); // non défini
console.log(myLet); // ReferenceError : Impossible d'accéder à 'myLet' avant l'initialisation
var maVar = 5;
laissez myLet = 10;
Dans l'exemple ci-dessus, myVar est déclaré à l'aide de var, il est donc hissé et initialisé à undefined. Mais myLet est dans la zone morte temporelle jusqu'à sa déclaration, donc essayer d'y accéder avant la déclaration renvoie une ReferenceError.
Points clés sur TDZ :
Les variables déclarées à l'aide de let ou const ne sont pas accessibles avant leur déclaration dans une portée de bloc, même si elles sont hissées.
Cela empêche l'utilisation de variables avant qu'elles ne soient explicitement initialisées.
Exemple :
console.log(maVar); // non défini
var maVar = 5;
Dans l'exemple ci-dessus, la déclaration de maVar est hissée en haut, mais son initialisation (maVar = 5) reste à l'endroit où elle a été écrite. Ainsi, lorsque console.log(myVar) est appelé avant l'initialisation, il renvoie undefined.
Levage de var, let, const et fonctions :
var : Les variables déclarées avec var sont hissées et initialisées avec undefined.
console.log(maVar); // non défini
var maVar = 10;
let et const : Les variables déclarées avec let et const sont hissées mais ne sont pas initialisées. Ils restent dans la TDZ jusqu'à leur initialisation.
console.log(myLet); //Erreur de référence
laissez myLet = 20;
Déclarations de fonctions : les déclarations de fonctions sont entièrement levées, ce qui signifie que vous pouvez appeler la fonction avant même le point où elle est déclarée dans le code.
myFunc(); // "Bonjour !"
fonction myFunc() {
console.log("Bonjour!");
>
Différences clés entre le levage et le TDZ :
Le levage élève les déclarations de variables et de fonctions au sommet de leur portée.
La zone morte temporelle se produit pour let, const et class, où les variables sont hissées mais ne sont pas accessibles tant qu'elles ne sont pas initialisées. Cela empêche d'accéder aux variables avant leur déclaration.
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!