变量没有var

时间:2011-06-24 16:33:33

标签: javascript scope

关于, 本地变量 ...

function foo(){var x = 1;  ...}

...和全局变量,...
(全球,例1)

function foo(){x = 1;  ...}

(全球,例2)

var x=1; function foo(){...}

......剩下的唯一(简单)组合是:

x=1; function foo{...}

...我测试并注意到它也创建了一个全局变量(如例2),但是这个最后一个例子有什么实际的原因吗? 注意:我通常喜欢遵循惯例并编写可读代码并远离“怪异”。

1 个答案:

答案 0 :(得分:3)

这是因为JavaScript是一种动态语言。它允许您在不声明变量的情况下使用变量。您应该始终声明变量以消除您讨论的混淆。如果你不这样做,JSLint / JSHint会抱怨。

您的“(全局,示例1)”是错误的。这不会创建全局变量。

function foo() { x = 1; }
function bar() { 
   alert(x);
}
foo();
bar();

编辑我错了。 http://jsfiddle.net/awuzA/