Когда мы создаем переменную без указания let
или var
, она добавляется к объекту окна в браузере. Например
function change(){
val = 20;
}
change();
console.log(window.val); //20
console.log(val); //20
Здесь я получаю значение печати обоих журналов консоли 20
. Но я делаю то же самое, используя let
, он не добавляется к объекту окна. Я видел этот ответ с объяснением, почему это происходит.
let val = 20;
console.log(window.val); //undefined
console.log(val); //20
Теперь, в приведенном ниже коде, кто-то может объяснить, когда я назначаю переменную un scoped внутри функции, почему она не добавляется в window
scope? Вместо этого, как он изменяет значение переменной, объявленной с let
let value = 10;
function change(){
value = 20;
}
change();
console.log(window.value); //undefined
console.log(value); //20 why this is 20?