【发布时间】:2016-07-20 12:44:10
【问题描述】:
我正在用 JavaScript 进行测试,我注意到使用 let 关键字就像
let variable = "I am a variable";
console.log(window.variable);
做了not add a variable property to the window object。这是否意味着它不存在于全局范围内?
我可以声明变量而不必在函数或 IIFE 中限定它们吗?
我确实搜索过这个但找不到任何东西。每个人都说要使用像{}() 这样的函数,或者只是访问一个包含代码的唯一全局变量,但是看到这个让我想知道它是否可以用于避免这些事情。
【问题讨论】:
-
如果问题是:“顶级
lets 是否可以替代 IIFE 和函数的词法范围提供的封装?”那么我认为答案将是一个响亮的不。 ES2015 替代全局命名空间对象和 IIFE 的许多当前用途是模块。
标签: javascript scope ecmascript-6