Рассмотрим этот фрагмент кода:
a = 5; var a; console.log(a);
Если вы думаете, что пытаетесь вывести «неопределенное» значение переменной. К сожалению, вы ошибаетесь! Есть 2 шага для выполнения кода JavaScript. Первый этап компиляции, а второй этап выполнения.
Давайте рассмотрим пример кода поэтапно.
Этап компиляции:
Все объявления, как переменные, так и функции являются процессами на этом этапе.
«a = 5» — это не один оператор. JavaScript на самом деле думает об этом как о двух утверждениях: «var a» (объявление) и «a = 5» (присваивание).
var a; var a;
Этап выполнения:
a = 5; console.log(a); // 5