使用let时变量的范围是什么?

问题描述

我是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)。