返回

JavaScript 解读: 执行环境,作用域和垃圾回收

前端

在 JavaScript 中,执行环境(execution context)和作用域(scope)是两个密切相关的概念。理解这两个概念对于理解 JavaScript 程序是如何工作的非常重要。

执行环境

执行环境是 JavaScript 代码执行的上下文。它定义了代码可以访问的变量和函数。执行环境在代码执行时创建,并在代码执行完成后销毁。

全局执行环境是 JavaScript 中的第一个执行环境。它在脚本加载时创建,并在脚本执行完成后销毁。全局执行环境中的变量和函数对脚本中的所有代码都是可见的。

函数执行环境是在函数调用时创建的。它包含函数的参数、局部变量和函数内部声明的函数。函数执行环境中的变量和函数对函数内的所有代码都是可见的。

作用域

作用域是变量和函数的可见范围。变量的作用域是指该变量可以在哪些地方被访问。函数的作用域是指该函数可以在哪些地方被调用。

JavaScript 有两种作用域:词法作用域和动态作用域。词法作用域是指变量和函数的作用域由代码的结构决定。动态作用域是指变量和函数的作用域由函数的调用栈决定。

JavaScript 使用词法作用域。这意味着变量和函数的作用域由它们在代码中声明的位置决定。函数内部声明的变量只能在该函数内访问。在函数外部声明的变量可以在函数内和函数外访问。

垃圾回收

垃圾回收是 JavaScript 中自动回收不再使用的内存空间的过程。当变量或函数不再被引用时,JavaScript 引擎就会将其从内存中回收。

JavaScript 使用标记清除(mark-and-sweep)算法进行垃圾回收。标记清除算法首先标记不再使用的变量和函数。然后,它扫描内存并回收被标记的变量和函数所占用的内存空间。

结论

执行环境、作用域和垃圾回收是 JavaScript 中三个重要的概念。理解这三个概念对于理解 JavaScript 程序是如何工作的非常重要。

更多资源