闭包:减少命名冲突冲突,自动内存管理(定义在代码块中的变量在代码块执行完毕后被释放掉)
作用域:全局变量和局部变量。
1.定义在函数中的参数和变量在函数外部不可见,函数内可见。
function test(){
var a=3;
console.log(a); //3
}
console.log(a); //undefined
2.如果没有用var声明,则为全局变量
function test(){
a=1;
}
test();
console.log(a); //1
外部读取内部变量