预解析

 

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)函数提升  就是把所有的函数声明提升到当前作用域的最前面  不调用函数

 

 

定义了一个变量同时赋值了,但是在定义之前使用的时候值是undefined,这情况我们称之为预解释,也称之为变量提升

 

 

 

 
posted @ 2021-07-22 14:27  Sai佐为  阅读(44)  评论(0)    收藏  举报