在javascript中使用/不使用var前缀定义变量

时间:2014-04-26 13:03:28

标签: javascript

之间的全局范围中是否存在差异定义变量

var my_var;

my_var;

3 个答案:

答案 0 :(得分:1)

在全球范围内,没有区别,除非您再次使用它:var my_var;将重新声明它,而my_var;将只是无用的表达。

答案 1 :(得分:1)

只有在不在全球范围内时才会有所不同。

Ex1(含var):

var x = 0; 
(function(){
  var x = 1; 
  alert('fx: '+ x);
})(); 
alert('gx: '+ x);

//fx: 1
//gx: 0

Ex2(不含var):

x = 0; 
(function(){
  x = 1; 
  alert('fx: '+ x);
})(); 
alert('gx: '+ x);

//fx: 1
//gx: 1

答案 2 :(得分:0)

var实际上是(重新)声明任何当前范围内的变量,而第二种形式是声明它(全局?),除非它之前已在包含范围内声明。第二种形式是隐式声明,而第一种形式是明确地这样做。

因此,全球范围没有差异,因为它不包含在任何其他范围内。