问题描述
我是javascript和编程新手。
如果我使用var
声明变量,则会看到我的变量是全局声明的,并且变量位于window
对象内部。
示例:
var element1 = 1;
window.element1; //This returns 1
但是当我使用let
时,无法使用window对象访问变量。
示例:
let element2 = 1;
window.element2; //This returns undefined
那么,我的变量element2
在哪里声明?
element2
的范围是什么?
解决方法
您将范围和自动附加到默认对象上感到困惑。
如果在任何块,函数或模块之外使用let
或 var
,则范围将是全局的。
var
还将相同名称的属性附加到默认对象(在浏览器中运行JS的情况下为window
)。