Я столкнулся с "подъемом" JavaScript, и я не понял, как этот фрагмент кода действительно функционирует:
var a = 1;
function b() {
a = 10;
return;
function a() {}
}
b();
alert(a);
Я знаю, что объявление функции, подобное (function a() {}
), будет поднято в верхней части области b
, но не должно переопределять значение a
(поскольку объявления функций переопределяют объявления переменных, но не переменные инициализация), поэтому я ожидал, что значение предупреждения будет 10 вместо 1!