上下文与预解析、逐行解析关系

上下文与预解析、逐行解析关系

下载的资料里面说

在一段 JS 脚本(即一个<script>标签中)执行之前,会先创建一个全局执行上下文环境,先把代码中即将执行的(内部函数的不算,因为你不知道函数何时执行)变量、函数声明(和“函数表达式”的区别)都拿出来。变量先暂时赋值为undefined,函数则先声明好可使用。这一步做完了,然后再开始正式执行程序。再次强调,这是在代码执行之前才开始的工作。

从开头到“函数则先声明好可使用”,这句话说的跟预解析的工作很像啊。是不是可以理解为创建上下文环境后开始预解析、逐行解析?还是说创建上下文和预解析、逐行解析就是一回事,只是从不同的方面理解而已?

“这一步做完了,然后再开始正式执行程序。”这是说逐行解析的工作吗?

“再次强调,这是在代码执行之前才开始的工作。”是逐行解析前的工作吗?

执行一段代码不就是预解析、逐行解析两个阶段吗?预解析提升变量、函数声明,逐行解析不就一行一行执行代码了?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,对于你的问题解答如下:

1、同学理解是对的,如下所示这段话表示预解析工作

http://img1.sycdn.imooc.com//climg/5ebf4690090f556b08500158.jpg

创建上下文和预解析、逐行解析不是一回事,可以理解为创建上下文环境后开始预解析,代码真正执行的时候是逐行解析的

2、“这一步做完了,然后再开始正式执行程序。”是指逐行解析的工作

3、“再次强调,这是在代码执行之前才开始的工作。”是指逐行解析前的工作

4、理解是对的,执行一段代码有两个阶段即: 预解析、逐行解析

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师