javascript,为什么不删除var关键字?

net*_*yal 4 javascript scope var

几乎所有的javascript书都说

在声明变量时总是使用var关键字,因为没有var,变量将被声明为全局变量.

那么,为什么不删除var关键字,将默认声明作为本地范围?像Python一样,如果你想使用全局变量,你写:

global foo;
Run Code Online (Sandbox Code Playgroud)

我们几乎所有时间都使用局部变量,不是吗?有充分的理由吗?谢谢你的帮助.


编辑:感谢您的所有帮助,我认为必须有一个很好的理由表明使用var更好,所以我没有尝试改变它的语言.

Sno*_*ear 6

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,它与以前的版本不兼容.


Que*_*tin 4

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)

如果选择是“最窄范围”或“全局范围”,那么这是不可能的。