2011-07-12 150 views
0

为什么javascript允许在本地代码中创建全局变量?
一个例子javascript变量范围

function f() { x=10; } 
function g() { print(x); } 
f(x); 
g(x); 
+1

设计错误。这个缺陷在ES5严格模式下已被删除。 –

+0

为什么不呢?我想这可能会导致命名冲突,但如果这是一个问题,您应该给出更好的变量名称。 –

+1

我上面的声明来源:http://es5.github.com/#C(第四个项目符号) –

回答

1

为什么javascript允许在本地代码中创建全局变量?

因为它不是一个完美的语言。使用var关键字来限制变量的范围。

3

当你不var前言变量会自动的在全球范围内。

+0

直到为其分配值的代码执行完毕。 – RobG

0

我想你需要在变量声明之前指定var以使其在范围内。