(1)预解析 js引擎会把js里面所有的var 含有function 提升到当前作用域的最前面
(2)代码执行 按照代码书写的顺序从上往下执行
(1)变量提升 就是把所有的变量声明提升带当前的作用域最前面 不提升赋值操作
(2)函数提升 就是把所有的函数声明提升带当前的作用域最前面
案例:
var a = 18; f1(); function f1(){ var b = 9; console.log(a); console.log(b); var a = '123'; } //相当于执行了以下代码 //1.先提升变量和函数 var a; function f1(){ // 3.函数内部 var b; var a; b = 9; console.log(a);//undifed console.log(b);//9 a = '123'; } //2.赋值 a = 18; f1();