关于, 本地变量 ...
function foo(){var x = 1; ...}
...和全局变量,...
(全球,例1)
function foo(){x = 1; ...}
(全球,例2)
var x=1; function foo(){...}
......剩下的唯一(简单)组合是:
x=1; function foo{...}
...我测试并注意到它也创建了一个全局变量(如例2),但是这个最后一个例子有什么实际的原因吗? 注意:我通常喜欢遵循惯例并编写可读代码并远离“怪异”。
答案 0 :(得分:3)
这是因为JavaScript是一种动态语言。它允许您在不声明变量的情况下使用变量。您应该始终声明变量以消除您讨论的混淆。如果你不这样做,JSLint / JSHint会抱怨。
您的“(全局,示例1)”是错误的。这不会创建全局变量。
function foo() { x = 1; }
function bar() {
alert(x);
}
foo();
bar();
编辑我错了。 http://jsfiddle.net/awuzA/