深入理解js作用域与作用域链

starrylsi
2024-07-20 / 0 评论 / 40 阅读 / 正在检测是否收录...

一次性理解作用域,为什么要有作用域呢,什么是作用域,它可以分为哪几种.

  1. 理解什么是作用域

作用域是当前的执行上下文,在其中的值和表达式“可见”(可被访问)。如果一个变量或表达式不在当前的作用域中,那么它是不可用的。作用域也可以堆叠成层次结构,子作用域可以访问父作用域,反过来则不行。

  1. 为什么要有作用域

作用域限制了变量和函数的可见性,防止不同部分的代码使用相同的名称而产生冲突。

  1. 作用域分为哪几种

JavaScript 的作用域分以下三种:
全局作用域:脚本模式运行所有代码的默认作用域,整个程序范围内可访问的作用域。在全局作用域中声明的变量可以被代码中的任何地方访问到。全局作用域的变量在程序执行过程中始终存在。
模块作用域:模块模式中运行代码的作用域
函数作用域(局部作用域):由函数创建的作用域,局部作用域是在函数内部声明的作用域,只能在该函数内部访问。当函数执行结束时,局部作用域中的变量会被销毁,不再可访问。这种作用域可以帮助我们避免变量名冲突,提高代码的可维护性。

此外,用 let 或 const 声明的变量属于额外的作用域:
块级作用域:用一对花括号(一个代码块)创建出来的作用域,ES6 引入了 let 和 const 关键字,使得 JavaScript 具备了块级作用域的能力。块级作用域由一对花括号 {} 创建,例如 if 语句、for 循环、with、try/catch等。在块级作用域中声明的变量只在该块内部可访问,超出该块则不可访问。

0

评论 (0)

取消