Всегда ли в контексте выполнения Javascript было два этапа (создание и выполнение)?

В JavaScript "Понимание странных частей" происхождение конкретного контекста выполнения было объяснено со ссылкой на два этапа:

  1. Фаза создания - объявления имеют приоритет и инициализируются с неопределенными значениями
  2. Фаза исполнения - где разрешены назначения

В этом ответе на связанный вопрос автор ссылается на переводчика, делающего два прохода над исходным кодом.

Всегда ли это было особенностью JS или это более недавнее явление, связанное с более современными движками JS, которые действуют как JIT-компиляторы?

1 ответ

Решение

В общем, все должно быть создано, прежде чем его можно будет использовать.

И да, это было поведение JavaScript с первой стандартной редакции.

Но нет, современные движки больше не являются интерпретаторами, которые "делают два прохода над исходным кодом", они используют парсер, который извлекает объявления и исполняемые команды за один проход.

Другие вопросы по тегам