写该系列文章的初衷是“让每位前端工程师掌握高频知识点,为工作助力”。这是前端百题斩的第9斩,希望朋友们关注公众号“执鸢者”,用知识武装自己的头脑。
前端百题斩【8】中阐述了JavaScript代码的执行过程,但是并没有具体阐述一个函数的执行过程,对于函数执行过程如下所示:(注意:具体的内容本文将不会展开,只会全面讲述一下)
- 确定执行环境
当JavaScript执行全局代码的时候,会创建全局执行执行上下文(整个页面的生存周期内,全局执行上下文只有一份);在调用一个函数的时候会创建该函数的执行上下文(执行环境)。将多个执行上下文管理起来的就是调用栈(调用栈就是用来管理函数调用关系的一种数据结构)
- 创建阶段
函数执行前会完成一些初始化操作,这就是创建阶段,该阶段主要进行生成变量对象、建立作用域链、确定this指向,为后续执行阶段做准备。
- 执行阶段
一切准备工作做好之后即进行代码执行阶段,该阶段将完成变量赋值、函数引用及执行其它代码。
- 垃圾回收
当函数执行完毕之后,会从调用栈中淡出、销毁、等待浏览器的垃圾回收。
1.如果觉得这篇文章还不错,来个分享、点赞吧,让更多的人也看到
2.关注公众号执鸢者,与号主一起斩杀前端百题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。