为什么没有var?

时间:2012-05-14 11:58:32

标签: javascript

  

可能重复:
  Difference between using var and not using var in JavaScript

似乎是个愚蠢的问题,但只是好奇。

num = "hello";

alert(num);

为什么这可能我没有在这里初始化num变量。

num = "hello";

而不是

var num = "hello";

2 个答案:

答案 0 :(得分:6)

var表示“将此变量范围限定为此函数”而不是“可以使用此变量”。

如果您关闭var,它将使用该函数中下一个范围内的变量。如果该范围没有var yourVar那么它将继续向上移动范围链,直到它成为全局并且悬挂window对象(假设浏览器或其他JS环境中的默认对象)是window)。

strict mode中的此更改,您可能不会使用。)

答案 1 :(得分:1)

如果没有var关键字,则会在全局范围内创建变量(在window下的浏览器中)。

如果你添加var,你只需将变量分配给当前范围,在大多数情况下这将是一个函数范围。

一般来说,最好使用函数范围,以免污染全局范围并防止多个同名变量之间发生冲突!