主页 > 前端 > javascript >
来源:未知 时间:2025-08-20 16:44 作者:小飞侠 阅读:次
[导读] 前言 在编程这个行业中总是能听到这个词执行上下文。那么什么叫执行上下文呢? 本篇文章主要是介绍 javascript 中的执行上下文, 看完之后你可以了解到: 执行上下文的类型 执行上下文...
前言在编程这个行业中总是能听到这个词"执行上下文"。那么什么叫"执行上下文"呢? 本篇文章主要是介绍javascript中的执行上下文, 看完之后你可以了解到:
概念首先我们来介绍什么是"执行上下文"。 举个例子,生活中,相同的话在不同的场合说可能会有不同的意思,而这个说话的场合就是我们说话的语境。 同样对应在编程中, 对程序语言进行"解读"的时候,也必须在特定的语境中,这个语境就是javascript中的执行上下文。 一句话概括:
执行上下文的类型在js中,执行上下文分为以下三种:
执行上下文的特点
JS如何管理多个执行上下文通过上面介绍,我们知道了js代码在运行时可能会产生无数个执行上下文,那么它是如何管理这些执行上下文的呢? 同时由于js是单线程的,所以不能同时干两件事,必须一个个去执行,那么这么多的执行上下文是按什么顺序执行的呢? 执行栈接下来就对上面的问题做出解答,管理多个执行上下文靠的就是执行栈,也被叫做调用栈。 特点:后进先出(LIFO)的结构。 作用:存储在代码执行期间的所有执行上下文。 LIFO: last-in, first-out,类似于向乒乓球桶中放球,最先放入的球最后取出) js在首次执行的时候,会创建一个全局执行上下文并推入栈中。 每当有函数被调用时,引擎都会为该函数创建一个新的函数执行上下文然后推入栈中。 当栈顶的函数执行完毕之后,该函数对应的执行上下文就会从执行栈中pop出,然后上下文控制权移到下一个执行上下文。 比如下面的一个例子: var a = 1; // 1. 全局上下文环境 function bar (x) { console.log('bar') var b = 2; fn(x + b); // 3. fn上下文环境 } function fn (c) { console.log(c); } bar(3); // 2. bar上下文环境 如下图: 执行上下文的生命周期执行上下文的生命周期也非常容易理解, 分为三个阶段:
创建阶段在创建阶段, 主要有是有这么几件事:
一张图方便你理解 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com