浏览器工作原理学习(七)

在执行前就进行编译并创建执行上下文的三种情况

  • 当JS执行全局代码得时候,会编译全局代码并创建全局执行上下文,而且在整个页面的生存周期内,全局执行上下文只有一份。
  • 当调用一个函数的时候,函数体内的代码会被编译,并创建函数执行上下文,在函数执行结束后,会被销毁。
  • 当使用eval函数的时候,eval的代码也会编译,并创建执行上下文。

调用栈(用来管理函数调用关系的一种数据结构)

  1. 什么是函数调用?
  • 本质是,就是运行一个函数,在执行函数前,JS引擎会为代码创建全局执行上下文,包含了声明的函数和变量。
  1. 什么是JS的调用栈
  • JS引擎用来管理执行上下文的栈称为执行上下文栈,又称调用栈。
  • 调用栈也是JS引擎追踪函数执行的一个机制。
  • 栈溢出,当入栈的执行上下文超过一定数目,JS引擎就会报错,这个错误就叫做栈溢出(函数递归调用,且无终止条件的时候)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值