我是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只在较低的范围内完成?
非常感谢您的帮助.
javascript的功能范围不是阻止范围(除非你使用let
).所以,
while ( i > 0 ) { console.log(i); i--; var g = 6; }
所以g
这里不是一个新变量,只是全局变量.