Maison >interface Web >js tutoriel >Comment JS fonctionne en coulisses ?

Comment JS fonctionne en coulisses ?

DDD
DDDoriginal
2024-09-18 21:50:021023parcourir

How JS works behind the scenes?

Comment fonctionne JavaScript

JavaScript fonctionne dans un environnement monothread, ce qui signifie qu'il exécute une tâche à la fois. Il gère l'exécution du code dans des contextes d'exécution (EC), qui peuvent être globaux ou fonctionnels.

Contexte Global d'Exécution (GEC)

  • Créé lors du chargement du fichier de code.

  • Le GEC se charge de paramétrer l'objet global (dans les navigateurs, c'est window) et le mot clé this.

  • Toutes les variables et fonctions déclarées dans la portée globale sont stockées dans le Global EC.

Phases de contexte d'exécution

  • Phase de création de mémoire :
    Pendant la phase de mémoire, JavaScript alloue de la mémoire pour les variables et les fonctions.
    Les variables reçoivent initialement la valeur indéfinie, tandis que les fonctions sont stockées en mémoire avec leur définition complète.

  • Phase d'exécution :
    Après la phase d'allocation de mémoire, JavaScript commence à exécuter le code ligne par ligne.
    Les variables reçoivent des valeurs réelles et les fonctions sont exécutées.

Contexte d'exécution fonctionnelle (FEC)

  • Chaque fois qu'une fonction est invoquée, JavaScript crée un nouveau contexte d'exécution spécifiquement pour cette fonction.

  • Le contexte d'exécution de chaque fonction comporte deux phases :

  • Phase mémoire : la mémoire est allouée aux variables locales et aux fonctions à l'intérieur de la fonction.

  • Phase d'exécution : le corps de la fonction est exécuté et les variables obtiennent leurs valeurs réelles.

  • Après l'exécution, le contexte d'exécution de la fonction est détruit, libérant de la mémoire.

Relevés de retour
Une fois qu'une fonction atteint une instruction return, la fonction se termine immédiatement et son contexte d'exécution est supprimé de la pile d'appels. Tout code écrit après une instruction return ne sera pas exécuté.

La pile d'appels
JavaScript utilise la Call Stack pour gérer les contextes d'exécution.

  • Le concept LIFO (Last In, First Out) est utilisé :

  • Lorsqu'une fonction est appelée, son contexte d'exécution est placé en haut de la pile.

  • Une fois la fonction terminée (ou atteignant le retour), son contexte d'exécution est retiré de la pile.

JavaScript est à thread unique

Single-thread signifie que JavaScript ne peut effectuer qu'une seule opération à la fois, mais il peut quand même effectuer des opérations asynchrones, ce qui n'est pas si intéressant dans mon prochain article, nous discuterons de cette fonctionnalité étonnante de 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