JS基础 ——解释执行


前言

大家都知道,JS是一种不需要编译的解释型语言。但其实在浏览器执行JS代码前,也有一个词法分析和预编译过程,为后续代码执行做准备。


在这里插入图片描述

一、词法分析

将代码字符串,根据一定的规则,识别出一个个的单词。最终能通过这一过程, 检查出语法错误。

二、预编译

预编译发生在代码执行的前一刻,主要是开辟内存空间,存储变量函数等。

创建全局作用域GO对象
  • 寻找声明【变量】作为属性名,值为undefined,
  • 寻找声明【函数】作为属性名,值为函数体
创建局部作用域AO对象
  • 寻找【函数形参】和声明【变量】作为属性名,值为undefined;
  • 将实参和形参相统一,更改形参为具体值;
  • 寻找声明【函数】作为属性名,值为函数体

在寻找【变量】和【函数】过程中,会将声明的变量和函数放到最前面,所以就有了“变量提升

三、代码执行

执行逻辑代码


总结

了解JS代码预编译过程,有助于解决日常小Bug~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值