Le
Contexte d'exécution JavaScript est un concept important qui décrit comment le code est interprété et exécuté pendant l'exécution du programme. Chaque appel de fonction ou exécution d'un bloc de code crée un contexte d'exécution qui contrôle la portée de toutes les variables, objets et fonctions pendant l'exécution du code.
Qu’est-ce que le contexte d’exécution ?
Le contexte d'exécution est un environnement créé lors de l'exécution du code JavaScript. Il agit comme un conteneur qui stocke les données de variables de fonction, d'objets et de fonctions spécifiques. Fondamentalement, le contexte d'exécution indique au moteur JavaScript où trouver les variables et les fonctions et comment les exécuter.
Types de contexte d'exécution
Le contexte d'exécution peut être principalement de trois types :
-
Contexte d'exécution global (GEC) : Lorsqu'un script est exécuté pour la première fois, un contexte d'exécution global est créé. Il n'est créé qu'une seule fois et contient l'objet global (par exemple la fenêtre dans le navigateur) et cette liaison. GEC ne se termine pas tant que l'exécution complète du script n'est pas terminée.
-
Contexte d'exécution de fonction (FEC) : Chaque fois qu'une fonction est appelée, un nouveau contexte d'exécution est créé. Chaque fonction a son propre contexte d'exécution, qui contient sa propre portée, ses variables et cette liaison.
-
Contexte d'exécution d'évaluation : Un nouveau contexte d'exécution est créé lorsque la fonction eval() est utilisée. Cependant, l'utilisation de eval() est généralement déconseillée car elle peut entraîner des problèmes de lisibilité et de sécurité du code.
Composants du contexte d'exécution :
Le contexte d'exécution se compose généralement de trois parties principales :
-
Objet variable (VO) / Environnement lexical : stocke toutes les variables, déclarations de fonction et arguments de fonction.
console.log(a); // Output: undefined
var a = 5;
function myFunction() {
console.log(b); // Output: undefined
var b = 10;
}
myFunction();
- Scope Chain : Scope Chain est une chaîne qui rend toutes les variables et fonctions accessibles du contexte d'exécution actuel à son contexte précédent. Il détermine quelles variables peuvent être trouvées et où.
var globalVar = "I'm Global";
function outerFunction() {
var outerVar = "I'm in outer function";
function innerFunction() {
var innerVar = "I'm in inner function";
console.log(globalVar); // "I'm Global"
console.log(outerVar); // "I'm in outer function"
}
innerFunction();
}
outerFunction();
-
this Keyword Binding : il s'agit d'un mot-clé spécial, qui varie en fonction du contexte d'exécution. Dans le contexte d'exécution global, cela fait référence à l'objet global, et dans le contexte d'exécution de fonction, cela dépend de la manière dont la fonction est appelée.
console.log(this); // Global context, refers to `window` in browsers.
var myObject = {
name: "JavaScript",
sayName: function() {
console.log(this.name); // `this` refers to `myObject`.
}
};
myObject.sayName(); // Output: "JavaScript"
function MyConstructor() {
this.prop = "Property";
}
var obj = new MyConstructor();
console.log(obj.prop); // Output: "Property"
Cycle de vie du contexte d'exécution :
Le cycle de vie du
Contexte d'exécution est divisé en trois phases :
-
Phase de création : Dans cette phase, le contexte d'exécution est créé et tous les composants importants tels que la Scope Chain, l'objet variable et ceux-ci sont créés et initialisés.
-
Phase d'exécution : Dans cette phase, le code est exécuté, c'est-à-dire que les variables se voient attribuer des valeurs et que les fonctions sont exécutées.
-
Garbage Collection : A la fin du contexte d'exécution, s'il n'est plus nécessaire, il est supprimé de la mémoire et les ressources associées sont libérées.
Conclusion
Le contexte d'exécution est le fondement de JavaScript qui détermine la manière dont le code sera exécuté. Il assure une gestion appropriée des variables, des fonctions et des étendues. Une bonne compréhension du contexte d'exécution permet de mieux comprendre et gérer les fonctionnalités et les étapes d'exécution du code JavaScript.
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!
Déclaration: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