En JavaScript Comprendre les pièces étranges, la genèse d'un contexte d'exécution particulière a été expliqué en référence à deux phases:Le contexte d'exécution Javascript avait-il toujours deux phases (création et exécution)?
- phase de création - déclarations sont hiérarchisées et initialisés avec des valeurs non définies
- phase d'exécution - où les affectations sont résolu
en this answer à une question connexe, l'auteur fait référence à l'interprète faisant deux passes sur le code source.
Est-ce que cela a toujours été une caractéristique de JS ou est-ce un phénomène plus récent lié à des moteurs JS plus modernes qui agissent comme des compilateurs JIT?