net*_*yal 4 javascript scope var
几乎所有的javascript书都说
在声明变量时总是使用var关键字,因为没有var,变量将被声明为全局变量.
那么,为什么不删除var关键字,将默认声明作为本地范围?像Python一样,如果你想使用全局变量,你写:
global foo;
Run Code Online (Sandbox Code Playgroud)
我们几乎所有时间都使用局部变量,不是吗?有充分的理由吗?谢谢你的帮助.
编辑:感谢您的所有帮助,我认为必须有一个很好的理由表明使用var更好,所以我没有尝试改变它的语言.
var globalInt = 5;
function Hello()
{
// Hey, give me back my var keyword!
// I want to assign a global existing variable
globalInt = 7;
}
Run Code Online (Sandbox Code Playgroud)
另一点是没有简单的方法可以从JavaScript中删除一些东西.每个功能(甚至黑客)已经在数千个网站上使用,删除功能将破坏这些网站.JavaScript只能扩展.或者应该创建新的JS,它与以前的版本不兼容.
function A() {
var foo; // variable in the scope of function A
function B() {
foo; // variable still in the scope of function A
}
}
Run Code Online (Sandbox Code Playgroud)
如果选择是“最窄范围”或“全局范围”,那么这是不可能的。