js中函数及变量的声明都将提升到函数的顶部,变量可以先使用再声明,但是初始化后的变量不可以进行变量提升。
function f1() {
var a = 1;
b = 2;
console.log(a + "-" + b); //1-2
var b;
}
f1执行相当于f2
function f2() {
var a = 1;
var b;
b = 2;
console.log(a + "-" + b); //1-2
}
初始化的不能够进行变量提升
function() {
var a = 1;
console.log(a + "-" + b); //1-undefined
var b = 2;
}