Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中定义带/不带var前缀的变量_Javascript - Fatal编程技术网

在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