Почему JavaScript поднимает переменные?


Почему JavaScript поднимает переменные?

Какова была логика конструкторов, когда они решили осуществить подъем? Есть ли другие популярные языки, которые делают это?

Пожалуйста, предоставьте соответствующие ссылки на документацию и / или записи.

1 61

1 ответ:

Как объясняет Стоян Стефанов в книге "JavaScript Patterns", подъем является результатом реализации интерпретатора JavaScript.

Интерпретация кода JS выполняется в два прохода. Во время первого прохода интерпретатор обрабатывает объявления переменных и функций.

Второй проход фактически является шагом выполнения кода. Интерпретатор обрабатывает выражения функций и необъявленные переменные.

Таким образом, мы можем использовать понятие "подъем" для описания такого поведения.

Надеюсь, это поможет.