Maison > interface Web > js tutoriel > le corps du texte

Vous faire comprendre comment fonctionne JavaScript

WBOY
Libérer: 2022-08-31 20:27:05
avant
1770 Les gens l'ont consulté

Cet article vous apporte des connaissances pertinentes sur javascript. Il présente principalement les principes de fonctionnement de JavaScript. Cet article vous le présente en détail. Il a une certaine valeur de référence pour les amis qui en ont besoin. il.

Vous faire comprendre comment fonctionne JavaScript

[Recommandations associées : tutoriel vidéo javascript, front-end web]

Pour comprendre le fonctionnement de JavaScript et son mécanisme de fonctionnement, nous devons tout d'abord comprendre le cœur du navigateur :

Noyau du navigateur

Tous ceux qui le savent le savent : les différents navigateurs sont composés de différents noyaux, donc quels sont les noyaux présents et quels noyaux sont utilisés par nos navigateurs couramment utilisés :

  • Gecko : parcouru en premier par les navigateurs Netscape et Mozilla Firefox
  • Trident : développé par Microsoft, utilisé par les navigateurs IE4~IE11, mais le navigateur Edge est passé à Blink ;
  • Webkit : développé par Apple basé sur KHTML, open source, utilisé dans Safari, et Google Chrome était également utilisé auparavant ; : Il s'agit d'une branche de Webkit, développée par Google, et actuellement utilisée dans Google Chrome, Edge, Opera, etc.
  • Le soi-disant noyau du navigateur fait référence au moteur de mise en page du navigateur, c'est-à-dire le moteur du navigateur. Le processus d'exécution du travail du moteur est le suivant :

Vous faire comprendre comment fonctionne JavaScriptMais au cours de ce processus d'exécution, des balises JavaScript sont rencontrées lors de l'analyse HTML. Que dois-je faire ?

arrêtera d'analyser le HTML et chargera et exécutera le code JavaScript ;


Bien sûr, pourquoi ne pas simplement charger et exécuter le code JavaScript de manière asynchrone au lieu de s'arrêter ici ?

Le navigateur espère donc rassembler le DOM analysé par HTML et le DOM après l'opération JavaScript pour générer l'arborescence DOM finale, au lieu de générer fréquemment de nouvelles arborescences DOM ;

Alors, qui exécutera le code JavaScript ?

Réponse : Moteur JavaScript


Moteur JavaScript

Pourquoi avons-nous besoin d'un moteur JavaScript ?

En fait, que le JavaScript que nous écrivons soit transmis au navigateur ou au nœud pour exécution, il devra éventuellement être exécuté par le CPU
  • Mais le CPU ne connaît que son propre jeu d'instructions, qui est en fait un langage machine ; , afin d'être exécuté par le CPU ;
  • Nous avons donc besoin d'un moteur JavaScript pour nous aider à traduire le code JavaScript en instructions CPU pour l'exécution ;
  • Quels sont les moteurs JavaScript courants ?

SpiderMonkey : le premier moteur JavaScript, développé par Brendan Eich (également l'auteur de JavaScript) ;
  • Chakra : développé par Microsoft, utilisé dans le navigateur IE
  • JavaScriptCore : moteur JavaScript dans WebKit, développé par Apple ; V8 : Le puissant moteur JavaScript développé par Google permet également à Chrome de se démarquer de nombreux navigateurs ; (V8 est un puissant moteur JavaScript)
  • Moteur V8
V8 est le JavaScript open source hautes performances de Google écrit en C++ et le moteur WebAssembly. , qui est utilisé entre autres dans Chrome et Node.js.

Il implémente ECMAScript et WebAssembly et fonctionne sur les systèmes Windows 7 ou supérieur, macOS 10.12+ et Linux utilisant des processeurs x64, IA-32, ARM ou MIPS.
  • V8 peut fonctionner de manière autonome ou intégré dans n'importe quelle application C++.
  • Le principe du moteur V8 exécutant du code JavaScript :
  • Le module Parse convertira le code JavaScript en AST (Abstract Syntax Tree), car l'interpréteur ne comprend pas directement - le code JavaScript ;

Si la fonction n'est pas appelée ; , Ensuite, il ne sera pas converti en AST ;

Documentation officielle de Parse V8 : https://v8.dev/blog/scanner
  • Ignition est un interpréteur qui convertira AST en ByteCode (bytecode)
En même temps temps, il collectera les informations nécessaires à l'optimisation de TurboFan (telles que les informations de type des paramètres de fonction, ce n'est qu'avec le type que de vraies opérations peuvent être effectuées)

Si la fonction n'est appelée qu'une seule fois, Ignition interprétera et exécutera ByteCode ;
    V8 officiel de la documentation d'Ignition : https://v8.dev/blog/ignition-interpreter
  • TurboFan est un compilateur qui peut compiler du bytecode en code machine que le CPU peut exécuter directement
  • Si une fonction est appelée multiple ; fois, Ensuite, il sera marqué comme fonction chaude, puis il sera converti en code machine optimisé via TurboFan pour améliorer les performances d'exécution du code

Cependant, le code machine sera en fait restauré en ByteCode, car si le la fonction est ensuite exécutée Au cours du processus, le type a changé (par exemple, la fonction somme a initialement exécuté le type numérique, puis l'a exécuté en tant que type chaîne. Le code machine précédemment optimisé ne peut pas gérer l'opération correctement et sera converti). en bytecode à l'envers ;

    Documentation officielle de TurboFan V8 : https://v8.dev/blog/turbofan-jit
  • Ce qui précède est le processus d'exécution du code JavaScript
  • 【Recommandations associées : tutoriel vidéo javascript, front-end web

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!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!