可能是重复问题:
JavaScript中使用var和不使用var的区别
我明白在函数中定义本地变量时应该始终使用'var'。
当我定义全局函数时,使用'var'有什么区别?
我在互联网上看到一些代码示例使用了
var globalVar = something;
globalVar = something;
有什么区别吗?
可能是重复问题:
JavaScript中使用var和不使用var的区别
我明白在函数中定义本地变量时应该始终使用'var'。
当我定义全局函数时,使用'var'有什么区别?
我在互联网上看到一些代码示例使用了
var globalVar = something;
globalVar = something;
有什么区别吗?
从技术上讲,一个简单赋值操作如globalVar = 'something';
并不会声明一个变量,它只是在全局对象上创建了一个属性,由于全局对象是作用域链中的最后一个对象,因此可以解析。
另一个区别在于绑定方式,变量是作为其环境记录的"不可删除"属性进行绑定的,例如:
var global1 = 'foo';
delete this.global1; // false
global2 = 'bar';
delete this.global2; // true
我强烈建议您始终使用var
语句。例如,您的代码将在ECMAScript 5严格模式下出现问题,因为不允许对未声明的标识符进行赋值,以避免隐式全局变量。
alert(globalVar); globalVar = something;
会因为JS编译变量的方式而抛出错误。在第二行之前添加 var
,你只会得到 "undefined"。 - user578895var
关键字只会在解析时在当前上下文中神奇地“声明”一个变量,而没有任何定义。 - jAndy<sub><sup>
。 - user113716