在javascript中定义带/不带var前缀的变量
在全局范围中定义变量是否存在差异在javascript中定义带/不带var前缀的变量,javascript,Javascript,在全局范围中定义变量是否存在差异 var my\u var 及 在全局范围内,没有区别,除非您再次使用它:var my\u var将重新声明它,而my\u var将只是一个无用的表达式。var实际上(重新)在任何当前范围内声明变量,而第二个表单(全局)声明变量,除非它以前在包含范围内声明过。第二个表单隐式声明,而第一个表单显式声明 因此,在全局范围中没有区别,因为它不包含在任何其他范围中。只有在不在全局上下文中时才有区别 Ex1(带var): Ex2(无风险值): my_var; var x
var my\u var代码>
及
在全局范围内,没有区别,除非您再次使用它:var my\u var
将重新声明它,而my\u var代码>将只是一个无用的表达式。var
实际上(重新)在任何当前范围内声明变量,而第二个表单(全局)声明变量,除非它以前在包含范围内声明过。第二个表单隐式声明,而第一个表单显式声明
因此,在全局范围中没有区别,因为它不包含在任何其他范围中。只有在不在全局上下文中时才有区别
Ex1(带var):
Ex2(无风险值):
my_var;
var x = 0;
(function(){
var x = 1;
alert('fx: '+ x);
})();
alert('gx: '+ x);
//fx: 1
//gx: 0
x = 0;
(function(){
x = 1;
alert('fx: '+ x);
})();
alert('gx: '+ x);
//fx: 1
//gx: 1