Maison  >  Article  >  interface Web  >  Environnement d'exécution JS et analyse de la portée

Environnement d'exécution JS et analyse de la portée

小云云
小云云original
2018-03-17 11:50:341142parcourir

Environnement d'exécution : définit d'autres données auxquelles les variables ou fonctions ont accès, et détermine leurs comportements respectifs. Chaque environnement d'exécution est associé à un objet variable, et toutes les variables et fonctions définies dans l'environnement sont stockées dans cet objet.

Environnement d'exécution global : C'est l'environnement d'exécution le plus périphérique. Dans les navigateurs Web, l'environnement d'exécution global est considéré comme l'objet fenêtre, de sorte que toutes les variables et fonctions globales sont créées en tant que propriétés et méthodes de l'objet fenêtre. Une fois que tout le code d'un environnement d'exécution a été exécuté, l'environnement est détruit, ainsi que toutes les définitions de variables et de fonctions qui y sont enregistrées.

Mécanisme de flux d'exécution : Chaque fonction possède son propre environnement d'exécution. Lorsque le flux d'exécution entre dans une fonction, l'environnement de la fonction est placé dans une pile d'environnement. Lorsque la fonction est exécutée, la pile affiche son environnement et rend le contrôle à l'environnement d'exécution précédent.

! ! Lorsque le code est exécuté dans un environnement, une chaîne de portée d'objets variables est créée. Le but de la chaîne de portée est de garantir un accès ordonné à toutes les variables et fonctions auxquelles l'environnement d'exécution a accès. L’extrémité avant de la chaîne de portées est toujours l’objet variable de l’environnement où se trouve le code en cours d’exécution. Si cet environnement est une fonction, son objet actif est utilisé comme objet variable. L'objet actif ne contient initialement qu'une seule variable, l'objet arguments. L'objet variable suivant dans la chaîne de portée provient de l'environnement conteneur (externe), et l'objet variable suivant provient de l'environnement conteneur suivant. De cette façon, on continue vers l'environnement global ; l'objet variable de l'environnement d'exécution global est toujours le dernier objet de la chaîne de portée.

L'environnement interne peut accéder à tous les environnements externes via la chaîne de portée, mais l'environnement externe ne peut accéder à aucune variable et fonction de l'environnement interne.

Étendre la chaîne de portée

Type d'environnement d'exécution : global et local.

Certaines instructions peuvent ajouter temporairement un objet variable à l'avant de la chaîne de portée, qui sera supprimé une fois le code exécuté.

  • Le bloc catch de l'instruction try-catch (créera un nouvel objet variable, qui contient la déclaration de l'objet d'erreur généré)

  • with instruction (ajoutera l'objet spécifié à la portée).

Aucune portée au niveau du bloc

Pour JavaScript, la variable que j'ai créée par l'instruction for existera toujours en dehors de la boucle même après la fin de l'exécution de la boucle for dans le. environnement d’exécution.

1. Déclaration des variables

Les variables déclarées à l'aide de var seront automatiquement ajoutées à l'environnement le plus proche. À l'intérieur d'une fonction, l'environnement le plus proche est l'environnement local de la fonction ; dans une instruction with, l'environnement le plus proche est l'environnement de la fonction. Si une variable est initialisée sans déclaration var, la variable sera automatiquement ajoutée à l'environnement global.

2. Requête des identifiants

Lorsqu'un identifiant est référencé en lecture ou en écriture dans un environnement, une recherche doit être effectuée pour déterminer ce que représente réellement l'identifiant. Le processus de recherche commence au début de l'oscilloscope et progresse pour trouver les identifiants qui correspondent au nom donné.

Recommandations associées :

Introduction à l'instance de l'environnement d'exécution JS

Détails de l'instance de l'environnement d'exécution et de la portée

Chaîne de portée javascript et environnement d'exécution

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