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是全局相当于重新赋值了(要理解闭包,需要先理解全局作用域和局部作用域的区别。函数内部可以访问全局作用域下定义的全局变量,而函数外部却无法访问到函数内部定义(局部作用域)的局部变量)