Как изменить блочную переменную в Javascript, установленную «let»? - PullRequest
2 голосов
/ 01 мая 2020

Если я объявил переменную в верхней части файла Javascript, например:

let x = 3;

Как я могу изменить ее в функции позже? Я знаю, что вы можете использовать window.x с переменными, установленными var, но как вы можете изменить его, если он был объявлен let?

let x = 3;

function myFunction(){
   x = 4;
};

1 Ответ

1 голос
/ 01 мая 2020

Вы установили глобальную переменную x. Это доступно во всем мире. Ваша функция изменяет эту глобальную переменную на 4. Простой как этот.

let x = 3;

function myFunction(){
   x = 4;
};
console.log(x) // 4

Чтобы, возможно, расширить это, что, если вы должны были бы повторно объявить x внутри myFunction()? Это затеняет глобальный x, который вы объявили наверху. Глобальный x все равно будет 3 даже после запуска кода, но x будет 4 внутри функции.

let x = 3;

function myFunction(){
    let x = 4; // this will now shadow the global x at the top
    console.log(x);
};
console.log(x) // 3

И если вы запустите myFunction() .. .

myFunction(); // 4
...