var a=b=1 var a=1,b=1的区别

var a,b=0;
         console.log(a,b)//undefind 0
         fn=function(){
    
    
             var a=b=2;//用var a=b=1的方式 变量b的作用域是全局的,变量a是局部的

             
         };
         fn();
         console.log(a,b)//undefind 2
var a,b=0;
         console.log(a,b)//undefind 0
         fn=function(){
    
    
             var a=2;
             var b=2;//用var a=1,b=1的方式变量a和变量b的作用域都是局部
             
         };
         fn();
         console.log(a,b)//undefind 0

总结:所以在fn函数体内,a是局部外边访问不到,b是全局相当于重新赋值了(要理解闭包,需要先理解全局作用域和局部作用域的区别。函数内部可以访问全局作用域下定义的全局变量,而函数外部却无法访问到函数内部定义(局部作用域)的局部变量)

猜你喜欢

转载自blog.csdn.net/weixin_45730243/article/details/109080636