为什么这个函数中的变量是全局的?

0x4*_*2D2 2 javascript scope

我认为函数中定义的任何变量都是本地的,但我可以轻松访问其函数之外的变量'e'.

function change() {
 var d = 6; 
  e = 7;
}

change();
alert(e); //> alerts 7
Run Code Online (Sandbox Code Playgroud)

Ken*_*kot 10

因为默认情况下新变量将进入全局范围. var通过将变量的存在限制在当前范围内来防止这种情况发生.

  • @user这个建议,AFAIK,来自Douglas Crockford和他的[JSLint](http://www.jslint.com/).要将`var`应用于多个声明,请使用逗号分隔它们:`var d = 6,e = 7;` (3认同)