可能重复:
Difference between using var and not using var in JavaScript
似乎是个愚蠢的问题,但只是好奇。
num = "hello";
alert(num);
为什么这可能我没有在这里初始化num变量。
num = "hello";
而不是
var num = "hello";
答案 0 :(得分:6)
var
表示“将此变量范围限定为此函数”而不是“可以使用此变量”。
如果您关闭var
,它将使用该函数中下一个范围内的变量。如果该范围没有var yourVar
那么它将继续向上移动范围链,直到它成为全局并且悬挂window
对象(假设浏览器或其他JS环境中的默认对象)是window
)。
(strict mode中的此更改,您可能不会使用。)
答案 1 :(得分:1)
如果没有var
关键字,则会在全局范围内创建变量(在window
下的浏览器中)。
如果你添加var
,你只需将变量分配给当前范围,在大多数情况下这将是一个函数范围。
一般来说,最好使用函数范围,以免污染全局范围并防止多个同名变量之间发生冲突!