【问题标题】:What is the scope of my variable when I use let? [duplicate]当我使用 let 时,我的变量的范围是什么? [复制]
【发布时间】:2020-12-05 06:33:48
【问题描述】:

我是 javascript 和编程新手。

如果我用var 声明一个变量,我会看到我的变量是全局声明的,并且我的变量位于window 对象内。 示例:

var element1 = 1;
window.element1; //This returns 1

但是当我使用let 时,我无法使用窗口对象访问我的变量。 示例:

let element2 = 1;
window.element2; //This returns undefined

那么,我的变量 element2 是在哪里声明的? element2的范围是什么?

【问题讨论】:

  • let 在全局声明时(在最顶层范围内)不会创建窗口对象的属性。

标签: javascript variables window global


【解决方案1】:

您混淆了默认对象的范围和自动附加。

如果您在任何块、函数或模块之外使用let var,则范围将是全局的。

var 还会将同名的属性附加到默认对象(在 JS 在浏览器中运行的情况下为 window)。

【讨论】:

    猜你喜欢
    • 2012-04-04
    • 1970-01-01
    • 2023-03-13
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 2017-10-25
    • 1970-01-01
    相关资源
    最近更新 更多