可能重复:
Difference between using var and not using var in JavaScript为什么没有var?
似乎愚蠢的问题,但只是好奇。
num = "hello";
alert(num);
为什么这是可能的我在这里没有初始化num变量。
num = "hello";
代替
var num = "hello";
可能重复:
Difference between using var and not using var in JavaScript为什么没有var?
似乎愚蠢的问题,但只是好奇。
num = "hello";
alert(num);
为什么这是可能的我在这里没有初始化num变量。
num = "hello";
代替
var num = "hello";
var
意味着“范围这个变量此功能”而不是“有可能使用这个变量”。
如果您关闭var
,则它将使用该函数下一个范围内的变量。如果该范围没有var yourVar
,那么它将继续向上扩展范围链,直到它变为全局范围并悬挂在window
对象(假设浏览器或其他默认对象为window
的JS环境)。
(这改变strict mode,你大概是没有使用。)
请注意,在ECMAScript 5 Strict Mode中,这种分配是不允许的 –
因此num =“hello”是一个带有hello字符串的变量字符串? – user1393669
@ user1393669:这并不复杂。 var所做的就是改变变量的范围。没有其他的。除范围之外,'num = 5'相当于'var num = 5'(同样,在*非* -strict模式下)。也看看我链接到的问题,它包含更多信息。 –
没有var
关键字的变量在全球范围内(window
下浏览器)创建的。
如果添加var
,则只需将该变量分配给当前作用域,该作用域在大多数情况下都是函数作用域。
一般来说,使用函数作用域会更好,以免污染全局作用域并防止多个同名变量之间的冲突!
请阅读一些文档:https://developer.mozilla.org/en/JavaScript/Reference/Statements/var并请在您提出新问题之前进行搜索。 –