案例:
f1();
console.log(a);
console.log(b);
console.log(c);
var a = 2;
var b = 3;
var c = 4;
function f1(){
console.log(a);
console.log(b);
console.log(c);
var a = b = c = 5;
console.log(c);
}
function c(){
};
/*----------------------------------*/
/**
*预解析过程:
*1. 把变量的声明提升到当前作用域的最前面,只会提升声明,不会提升赋值。
*2. 把函数的声明提升到当前作用域的最前面,只会提升声明,不会提升调用。
*3. 先提升var,再提升function。
*/
var a,b,c;
function f1(){
var a;
console.log(a);
console.log(b);
console.log(c);
a = b = c = 5;
}
function c(){
};
f1();
console.log(a);
console.log(b);
console.log(c);
a = 2;
b = 3;
c = 4;