为什么javascript允许在本地代码中创建全局变量?
一个例子javascript变量范围
function f() { x=10; }
function g() { print(x); }
f(x);
g(x);
为什么javascript允许在本地代码中创建全局变量?
一个例子javascript变量范围
function f() { x=10; }
function g() { print(x); }
f(x);
g(x);
为什么javascript允许在本地代码中创建全局变量?
因为它不是一个完美的语言。使用var
关键字来限制变量的范围。
我想你需要在变量声明之前指定var
以使其在范围内。
设计错误。这个缺陷在ES5严格模式下已被删除。 –
为什么不呢?我想这可能会导致命名冲突,但如果这是一个问题,您应该给出更好的变量名称。 –
我上面的声明来源:http://es5.github.com/#C(第四个项目符号) –