1.概念
js的执行过程在一般情况下是从上往下执行的,但是我们可以通过var 或者 函数调用 将变量或函数的执行顺序进行提升
变量预解析就是把所有的变量声明提升到当前作用域的最前面,但不提升赋值操作
console.log(num); //执行结果:undefined
var num = 16;
//是因为预解析后,相当于 执行了以下代码
var num;//变量提升
console.log();
num = 10;
函数预解析 也叫 函数提升
就是把所有的函数声明提升到当前作用域的最前面,但不调用函数
fn(); // 输出结果:18
function fn(){
console.log(18);
}
//预解析后,相当于执行了以下代码
function fn() {//函数提升
console.log(18);
}
fn();