2012-05-14 62 views

回答

6

var意味着“范围这个变量此功能”而不是“有可能使用这个变量”。

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

(这改变strict mode,你大概是没有使用。)

+0

请注意,在ECMAScript 5 Strict Mode中,这种分配是不允许的 –

+0

因此num =“hello”是一个带有hello字符串的变量字符串? – user1393669

+1

@ user1393669:这并不复杂。 var所做的就是改变变量的范围。没有其他的。除范围之外,'num = 5'相当于'var num = 5'(同样,在*非* -strict模式下)。也看看我链接到的问题,它包含更多信息。 –

1

没有var关键字的变量在全球范围内(window下浏览器)创建的。

如果添加var,则只需将该变量分配给当前作用域,该作用域在大多数情况下都是函数作用域。

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

相关问题