js变量提升与函数提升的详细过程
转载链接:https://www.cnblogs.com/lvonve/p/9871226.html
原文例子:
function foo() {
console.log(a);
var a = 1;
console.log(a);
function a() {}
console.log(a);
console.log(b);
var b = 2;
console.log(b);
function b() {}
console.log(b);
}
foo();
js是这样解析的:
按照讲解:将变量和函数的声明提升(下面的示例中的前面部分的代码)
然后按照之前的代码,执行赋值、显示操作!下图的代码顺序即为执行顺序
function foo() {
var a;
var b;
function a() {}
function b() {}
console.log(a); // a()
a = 1;
console.log(a); // 1
console.log(a); // 1
console.log(b); // b()
b = 2;
console.log(b); // 2
console.log(b);// 2
}
foo();