JavaScript Engine
JavasScript Engine ou le "moteur JavaScript" est un programme logiciel qui interprète et exécute du code en langage JavaScript. Les moteurs JavaScript sont généralement intégrés aux navigateurs Web mais ils peuvent également s'exécuter dans des environnement serveur comme Node.
Le premier moteur JavaScript, SpiderMonkey, a été créé par l'informaticien américain Brendan Eich pour le navigateur Netscape Navigator. Il était programmé en langage C.
Les premiers moteurs JavaScript étaient de simples interpréteurs. Puis, les versions ont évolué et ont intégré la compilation afin d'améliorer les performances d'exécution du code JavaScript.
V8 est le moteur JavaScript open source le plus utilisé et le plus connu. Il est développé par Google, utilisé sur Google Chrome, Chromium et Node.js.
Cf https://fr.wikipedia.org/wiki/Moteur_JavaScript
JavaScript Runtime
JavaScript Runtime est l'environnement qui fournit tous les composants nécessaires pour utiliser et exécuter des programmes js.
Prenons l'exemple du navigateur Chrome. Le schéma suivant indique que Chrome contient non-seulement un moteur de JavaScript (V8 en l'occurence) mais aussi :
- des web APIs comme le DOM, le Storage, les Timers
- des queues (de task ou de microtasks, ces dernières ayant la priorité)
- des boucles d'événements
Micro-tâches
Elles sont exécutées après les tâches classiques.
La micro-tâche est une fonction courte qui doit être exécutée après que la tâche actuelle ait terminé son exécution et lorsqu'il n'y a pas d'autre code en attente d'exécution avant que le contrôle du contexte d'exécution soit retourné à la boucle d'évènements du navigateur.
Cela permet à votre code de fonctionner sans interférer avec un autre code, dont la priorité est potentiellement plus haute, en attente, et avant que le navigateur ne regagne le contrôle du contexte d'exécution, qui dépend potentiellement de la tâche que vous devez effectuer. Vous pouvez en apprendre plus sur l'utilisation des micro-tâches et les raisons de leur utilisation dans le guide sur les micro-tâches.