当前位置:  开发笔记 > 编程语言 > 正文

使用javascript闭包/范围的奇怪输出

如何解决《使用javascript闭包/范围的奇怪输出》经验,为你挑选了1个好方法。

我是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只在较低的范围内完成?

非常感谢您的帮助.



1> Ramanlfc..:

javascript的功能范围不是阻止范围(除非你使用let).所以,

while ( i > 0 )
{
    console.log(i);
    i--;
    var g = 6;
}

所以g这里不是一个新变量,只是全局变量.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有