JavaScript中执行上下文和执行栈是如何实例化并协同工作的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3309个文字,预计阅读时间需要14分钟。
JavaScript原理系列:日常开发中,每当我们接手一个现有项目,我们总喜欢先看看别人写的代码。每次看到别人写出精彩的代码,我们都会感到惊叹!
JavaScript - 原理系列
在日常开发中,每当我们接手一个现有项目后,我们总喜欢先去看看别人写的代码。每当我们看到别人写出很酷的代码的时候,我们总会感慨!写出这么优美而又简洁的代码的兄弟到底是怎么养成的呢?
我要怎样才能达到和大佬一样的水平呢!好了,废话不多说,让我们切入今天的主题。
一、执行上下文
简而言之,就是JavaScript 代码被解析和执行时所在环境的抽象概念, 在JavaScript 中运行任何的代码都是在它的执行上下文中运行。
在运行JavaScript代码时,每当需要执行代码时,执行代码会先进入一个环境(浏览器、Node客户端),这时就会为该环境创建一个执行上下文,它会在你运行代码前做一些准备工作,如确定作用域,创建全局、局部变量对象等。
执行上下文的分类
- 全局执行上下文:
这是默认的、最基础的执行上下文。不在任何函数中的代码都位于全局执行上下文中。
它做了两件事:
- 创建一个全局对象,在浏览器中这个全局对象就是 window 对象。
将 this 指针指向这个全局对象。一个程序中只能存在一个全局执行上下文。
- 函数执行上下文:
每次调用函数时,都会为该函数创建一个新的执行上下文。
本文共计3309个文字,预计阅读时间需要14分钟。
JavaScript原理系列:日常开发中,每当我们接手一个现有项目,我们总喜欢先看看别人写的代码。每次看到别人写出精彩的代码,我们都会感到惊叹!
JavaScript - 原理系列
在日常开发中,每当我们接手一个现有项目后,我们总喜欢先去看看别人写的代码。每当我们看到别人写出很酷的代码的时候,我们总会感慨!写出这么优美而又简洁的代码的兄弟到底是怎么养成的呢?
我要怎样才能达到和大佬一样的水平呢!好了,废话不多说,让我们切入今天的主题。
一、执行上下文
简而言之,就是JavaScript 代码被解析和执行时所在环境的抽象概念, 在JavaScript 中运行任何的代码都是在它的执行上下文中运行。
在运行JavaScript代码时,每当需要执行代码时,执行代码会先进入一个环境(浏览器、Node客户端),这时就会为该环境创建一个执行上下文,它会在你运行代码前做一些准备工作,如确定作用域,创建全局、局部变量对象等。
执行上下文的分类
- 全局执行上下文:
这是默认的、最基础的执行上下文。不在任何函数中的代码都位于全局执行上下文中。
它做了两件事:
- 创建一个全局对象,在浏览器中这个全局对象就是 window 对象。
将 this 指针指向这个全局对象。一个程序中只能存在一个全局执行上下文。
- 函数执行上下文:
每次调用函数时,都会为该函数创建一个新的执行上下文。

