函数作用域:
1.变量在声明他们的函数体以及这个函数体嵌套的任意函数体内都是有定义的
声明提前:
1.JS函数内声明的所有变量都被“提前”到函数体的顶部
var a=1; //全局变量
function test() {
a=2; //因为申明提前,因此这是个局部变量,否则这里是个全局变量将会改变a=1
console.log(a); //2
console.log(this.a);//1
console.log(b); //undefined, b已经申明提前,但是还没有赋值
var a; //
var b=3; //
console.log(b); //3
console.log(c); //c is not defined
}
console.log(a); //1
test();
console.log(a); //1