Cet article décrit comment JavaScript exécute le contexte. Si vous ne connaissez pas le contexte d'exécution de JavaScript ou si vous êtes intéressé par le contexte d'exécution de JavaScript, jetons un coup d'œil à cet article ensemble. D'accord, c'est absurde. Parlons moins et. aller droit au but
Contexte : Lors des entretiens, nous rencontrons souvent des problèmes tels que la fonction et la promotion variable, la portée, etc. Si nous voulons comprendre ses principes en profondeur, nous doit d'abord comprendre Comprendre les concepts de contexte d'exécution de fonction et de pile de contexte d'exécution.
Encore une fois, introduisons la structure des données de la pile :
Pour résumer, les nouvelles données sont poussées depuis le haut de la pile, et les données contextuelles sont également extraites du haut de la pile, ce que nous appelons le principe du magazine.
1. Contexte d'exécution
Le contexte d'exécution peut être compris comme le contexte actuel. environnement d'exécution du code, qui forme un scope. L'environnement d'exécution en JavaScript comprend grosso modo trois situations.
Environnement global : le code JavaScript entrera d'abord dans cet environnement lors de l'exécution.
Environnement de fonction : lorsqu'une fonction est appelée et exécutée, il entrera la fonction actuelle pour exécuter le code
eval (non recommandé, peut être ignoré)
2. Pile de contexte d'exécution (Pile de contexte d'exécution)
JavaScript est exécuté sur un seul thread, donc tous les codes sont mis en file d'attente pour l'exécution. Le bas de la pile est toujours le contexte global et le. en haut de la pile se trouve le contexte d’exécution actuel. Lorsque le navigateur commence à exécuter du code global, il crée d'abord un contexte d'exécution global unique et le pousse en haut de la pile d'exécution (cela se produit lorsque le navigateur est fermé lors de l'exécution d'une fonction
n'est pas saisi, un nouveau contexte d'exécution de fonction sera créé et poussé en haut de la pile d'exécution en conséquence. Une fois la fonction actuelle terminée, l'exécution de la fonction actuelle. Le contexte est sauté du haut. de la pile et attend le ramassage des déchets
.
3. Le cycle de vie du contexte d'exécution
Cycle de vie total : Créer-->Exécuter-->Pop pour attendre la destruction
Phase de création
:
ACréer un objet variable : initialiser en premier Fonction paramètres arguments, déclaration de fonction d'initialisation, variable d'initialisation (non définie). La priorité d'une fonction est supérieure à celle d'une variable. Si la variable a le même nom que la fonction, la variable. sera ignoré.
a
crée un objet arguments, vérifie le contexte, initialise les noms et valeurs des paramètres et crée un copie de la référence.
banalyse le contexte à la recherche de déclarations de fonction (plutôt que de expressions de fonction)1.
Chaque fois qu'une fonction est trouvée, créez un attribut sur l'objet variable ----- pour être précis, le nom de la fonction - l'attribut valeur C'est une référence pointant vers l'adresse de la fonction en mémoire. 2.
Si le nom de la fonction ci-dessus existe déjà sous variableObject, la valeur de l'attribut correspondant sera écrasée par la nouvelle référence. c Analyser les déclarations de variables en contexte 1. Chaque fois qu'une déclaration de variable est trouvée, un attribut sera créé sur l'objet variable --- c'est-à-dire le mot nom de la variable, et la valeur de la variable sera initialisée à undefined d Déterminez le pointeur de ceci dans le contexte . B Créer une chaîne de portée
Phase d'exécution : Exécution de l'affectation des variables, exécution du code Phase de recyclage : La pile de contexte d'exécution attend que le mécanisme de garbage collection recycle le contexte Cas : (Le code suivant est utilisé pour illustrer le principe de fonctionnement du pile de contexte d'exécution) Diagramme de pile d'environnement : Si vous n'y connaissez pas encore grand chose, vous pouvez facilement le maîtriser en mettant en œuvre davantage de des deux côtés ! Front-end avancé (2) : diagramme de contexte d'exécution Objet variable JavaScript Partie 2 : VO dans différents contextes d'exécution Front-end Basic Advanced ( 2) : Contexte d'exécutionIllustration détaillée //变量声明
var a1 = 9,
a2 = 8,
a3 = "sss",
b1 = {name:"xixi"};
//函数调用
a1 = f1(a1,a2);
//函数声明
function f1(a,b){
//f1函数的执行上下文
/*
1.扫描参数: a = 9 b = 8
2.扫描函数声明 f2 = function(){}
3.扫描变量声明 t = undefined , m = undefined , i = undefined
*/
var t = 0,
m = 10;
for(var i=0;i<a;i++){
console.log(i);
}
function f2(){
console.log("f2");
}
return a+b;
}
Recommandations associées :
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!

Oui, le noyau du moteur de JavaScript est écrit en C. 1) Le langage C fournit des performances efficaces et un contrôle sous-jacent, qui convient au développement du moteur JavaScript. 2) Prendre le moteur V8 comme exemple, son noyau est écrit en C, combinant l'efficacité et les caractéristiques orientées objet de C. 3) Le principe de travail du moteur JavaScript comprend l'analyse, la compilation et l'exécution, et le langage C joue un rôle clé dans ces processus.

JavaScript est au cœur des sites Web modernes car il améliore l'interactivité et la dynamicité des pages Web. 1) Il permet de modifier le contenu sans rafraîchir la page, 2) manipuler les pages Web via Domapi, 3) prendre en charge les effets interactifs complexes tels que l'animation et le glisser-déposer, 4) Optimiser les performances et les meilleures pratiques pour améliorer l'expérience utilisateur.

C et JavaScript réalisent l'interopérabilité via WebAssembly. 1) Le code C est compilé dans le module WebAssembly et introduit dans un environnement JavaScript pour améliorer la puissance de calcul. 2) Dans le développement de jeux, C gère les moteurs de physique et le rendu graphique, et JavaScript est responsable de la logique du jeu et de l'interface utilisateur.

JavaScript est largement utilisé dans les sites Web, les applications mobiles, les applications de bureau et la programmation côté serveur. 1) Dans le développement de sites Web, JavaScript exploite DOM avec HTML et CSS pour réaliser des effets dynamiques et prend en charge des cadres tels que JQuery et React. 2) Grâce à la réactnative et ionique, JavaScript est utilisé pour développer des applications mobiles multiplateformes. 3) Le cadre électronique permet à JavaScript de créer des applications de bureau. 4) Node.js permet à JavaScript d'exécuter le côté du serveur et prend en charge les demandes simultanées élevées.

Python est plus adapté à la science et à l'automatisation des données, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python fonctionne bien dans la science des données et l'apprentissage automatique, en utilisant des bibliothèques telles que Numpy et Pandas pour le traitement et la modélisation des données. 2. Python est concis et efficace dans l'automatisation et les scripts. 3. JavaScript est indispensable dans le développement frontal et est utilisé pour créer des pages Web dynamiques et des applications à une seule page. 4. JavaScript joue un rôle dans le développement back-end via Node.js et prend en charge le développement complet de la pile.

C et C jouent un rôle essentiel dans le moteur JavaScript, principalement utilisé pour implémenter des interprètes et des compilateurs JIT. 1) C est utilisé pour analyser le code source JavaScript et générer une arborescence de syntaxe abstraite. 2) C est responsable de la génération et de l'exécution de bytecode. 3) C met en œuvre le compilateur JIT, optimise et compile le code de point chaud à l'exécution et améliore considérablement l'efficacité d'exécution de JavaScript.

L'application de JavaScript dans le monde réel comprend un développement frontal et back-end. 1) Afficher les applications frontales en créant une application de liste TODO, impliquant les opérations DOM et le traitement des événements. 2) Construisez RestulAPI via Node.js et Express pour démontrer les applications back-end.

Les principales utilisations de JavaScript dans le développement Web incluent l'interaction client, la vérification du formulaire et la communication asynchrone. 1) Mise à jour du contenu dynamique et interaction utilisateur via les opérations DOM; 2) La vérification du client est effectuée avant que l'utilisateur ne soumette les données pour améliorer l'expérience utilisateur; 3) La communication de rafraîchissement avec le serveur est réalisée via la technologie AJAX.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Version Mac de WebStorm
Outils de développement JavaScript utiles

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.
