0

可能重复:
在 JavaScript 中使用 var 和不使用 var 的区别

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

num = "hello";

alert(num);

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

num = "hello";

代替

var num = "hello";
4

2 回答 2

6

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

如果你离开var,那么它将在函数的下一个范围内使用变量。如果该作用域没有,var yourVar那么它将继续沿着作用域链上升,直到它变成一个全局对象并悬挂在window对象上(假设默认对象为 的浏览器或另一个 JS 环境window)。

(这会在您可能没有使用的严格模式下发生变化。)

于 2012-05-14T11:59:06.257 回答
1

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

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

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

于 2012-05-14T11:59:36.820 回答