前端百题斩【009】——函数执行过程

写该系列文章的初衷是“让每位前端工程师掌握高频知识点,为工做助力”。这是前端百题斩的第9斩,但愿朋友们关注公众号“执鸢者”,用知识武装本身的头脑。前端

前端百题斩【8】中阐述了JavaScript代码的执行过程,可是并无具体阐述一个函数的执行过程,对于函数执行过程以下所示:(注意:具体的内容本文将不会展开,只会全面讲述一下)
img浏览器

  1. 肯定执行环境
当JavaScript执行全局代码的时候,会建立全局执行执行上下文(整个页面的生存周期内,全局执行上下文只有一份);在调用一个函数的时候会建立该函数的执行上下文(执行环境)。将多个执行上下文管理起来的就是调用栈(调用栈就是用来管理函数调用关系的一种数据结构)
  1. 建立阶段
函数执行前会完成一些初始化操做,这就是建立阶段,该阶段主要进行生成变量对象、创建做用域链、肯定this指向,为后续执行阶段作准备。
  1. 执行阶段
一切准备工做作好以后即进行代码执行阶段,该阶段将完成变量赋值、函数引用及执行其它代码。
  1. 垃圾回收
当函数执行完毕以后,会从调用栈中淡出、销毁、等待浏览器的垃圾回收。

1.若是以为这篇文章还不错,来个分享、点赞吧,让更多的人也看到前端工程师

2.关注公众号执鸢者,与号主一块儿斩杀前端百题。数据结构