预解析:
// 1问 // console.log(num); // 2问 console.log(num); //undefined var num=10; // 函数表达式 调用必须写在函数表达式的下面 // 相当于执行了以下代码 // var num; // console.log(num); // num=10; // 3问 fu(); function fu(){ console.log(11); } // 4问 fun(); //报错 var fun=function(){ console.log(22); } // 1.我们js引擎运行分为两步 ;预解析 代码执行 // (1) 预解析 js引擎会把js 里面所有的var 还有function提升到当前作用域的最前面 // (2) 代码执行 按照代码书写的顺序从上往下执行 // 2.预解析分为 变量预解析(变量提升)和 函数预解析(函数提升) // (1) 变量提升 就是把所有的变量声明提升到当前的作用域最前面 不提升赋值操作 // (2) 函数提升 就是把所有的函数声明提升到当前的作用域最前面 不提升赋值操作
1.我们js引擎运行分为两步 ;预解析 代码执行
(1) 预解析 js引擎会把js 里面所有的var 还有function提升到当前作用域的最前面
(2) 代码执行 按照代码书写的顺序从上往下执行
2.预解析分为 变量预解析(变量提升)和 函数预解析(函数提升)
(1) 变量提升 就是把所有的变量声明提升到当前的作用域最前面 不提升赋值操作
(2) 函数提升 就是把所有的函数声明提升到当前的作用域最前面 不提升赋值操作