【发布时间】:2016-03-29 03:03:52
【问题描述】:
我是 javascript 新手,我试图理解闭包/外壳的东西,这里有一些简单的代码:
var i = 10;
var g = 3;
console.log("Commencing countdown, engines on");
while ( i > 0 )
{
console.log(i);
i--;
var g = 6;
}
console.log("this is g " + g );
当我运行这个时,我得到“这是 g 6”,但它不应该是 3,因为这是来自全局范围的 g,而 g = 6 只在较低的范围内完成?
非常感谢您的帮助。
【问题讨论】:
-
JS 中没有块作用域
-
@Teemu 在 ES6 块作用域中被广泛使用,无论你是使用
let声明一个块作用域变量还是简单地在{}中包装一个 sn-p
标签: javascript scope closures