之间的全局范围中是否存在差异定义变量
var my_var;
和
my_var;
答案 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
实际上是(重新)声明任何当前范围内的变量,而第二种形式是声明它(全局?),除非它之前已在包含范围内声明。第二种形式是隐式声明,而第一种形式是明确地这样做。
因此,全球范围没有差异,因为它不包含在任何其他范围内。