Я пытался понять подъем JavaScript и из того, что я понял, пространство памяти отведено для всех объявлений переменных перед выполнением кода.Поднятие JavaScript для нескольких объявлений одной и той же переменной
Я хотел бы понять, как интерпретатор работает с помощью подъема в случае нескольких объявлений для одной и той же переменной. Рассмотрим следующий код:
console.log(a);
//first declaration
function a() {
console.log('hello');
}
//second declaration
var a = 2;
Выход объявление функции:
function a() {
console.log('hello');
}
Итак, я предполагаю, что первое заявление интерпретатор встречает это тот, который хранится в памяти. Однако, смена порядка деклараций на:
console.log(a);
//first declaration
var a = 2;
//second declaration
function a() {
console.log('hello');
}
Результаты на том же выходе! Интерпретатор игнорирует первое объявление и сохраняет второе объявление в памяти. Почему это происходит? Не должно ли выход во втором случае быть undefined
?
так последующие несколько объявлений игнорируются, если они пытаются установить уже назначенную значение не определено? –
@TarunDugar Да точно. Уже присвоенные значения не будут заменены неопределенными с помощью объявления переменной. –
Хорошо, понял! Благодарю. –