js预解析

案例:

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;
原文地址:https://www.cnblogs.com/nili/p/12034974.html