预解析
1问 console.log(num);
2问 console.log(num); //undefined var num = 10; //相当于执行了以下代码
3问 fn(); function fn(){ console.log(11); //输出11 作用域 fn() 函数提升 }
4问 变量储存的fun不能放头上,赋值的不能函数提升 fun(); //放这里不可以 fun is not a function var fun = function() {console.log(22);} fun(); // 这里可以22
1、JS代码是由浏览器中的JS解析器来执行, JS解析器在运行JS代码的时候分为两步,预解析和代码执行。
(1)预解析 js引擎会把js 里面所有的var 还有 function 提升到当前作用域的最前面 (2)代码执行 按照代码书写的顺序从上往下执行 2. 预解析分为 变量预解析(变量提升) 和 函数预解析(函数提升) (1)变量提升 就是把所有的变量声明提升到当前的作用域最前面 不提升赋值操作 (2)函数提升 就是把所有的函数声明提升到当前作用域的最前面 不调用函数
|
|