【发布时间】:2011-12-24 23:06:30
【问题描述】:
【问题讨论】:
-
您使用的是哪一本 JavaScript 教程/书? (这是一个相当基本的……主题。)
标签: javascript
【问题讨论】:
标签: javascript
基本上var声明一个变量,你也可以同时赋值给它。
没有var,它分配给变量。分配将分配给现有变量或创建该名称的全局变量然后分配给它。
在函数之外,这意味着如果变量不存在,则没有真正的区别(原则上)。在这种情况下,两者都创建了全局变量foo。
在一个函数中,有很大的不同。第一个为函数创建一个局部变量,无论它是否存在于其他地方。
第二个将创建一个全局变量,如果它不存在,或者如果它存在则简单地更改值。
为了使代码尽可能模块化,您应该始终使用var,除非您特别想更改现有的全局变量。这意味着使用 var 声明函数之外的所有全局变量并使用 var 声明所有局部变量。
【讨论】:
obj.prop 实际上不能是一个新变量,而是现有obj 变量的属性。
foo = 1 会将foo 放在定义foo 的最后一个作用域或全局作用域中。 var foo = 1 会将变量放入当前作用域(即当前函数)。
【讨论】:
在第一种情况下 foo 将在定义它的同一范围内可用,即它将是局部变量。 在第二种情况下 foo 是一个全局变量,位于全局范围内。
【讨论】: