执行环境和作用域
执行环境的变量对象
执行环境:程序执行时生成的上下文执行环境,包含了变量和函数可访问的区域,执行环境产生独立的作用域
执行栈:程序在执行过程中,遇到一个独立的执行环境,就加入执行栈,很多个执行环境堆在一起的栈结构
栈:栈结构是一种典型的数据结构,先进后出,后进先出
作用域与作用域链
作用域:作用域就是标识符起作用的区域(范围)
作用域链:当前作用域的语句可以访问上一级作用域的变量,还可以访问再上一级的变量,直到最外面的全局作用域,形成的查找数据的链条就是作用域链
作用域划分
全局作用域
在代码中任何地方都能访问的变量、函数或对象,它们被定义在程序最外层,位于任何函数或块之外,程序退出时才会被销毁。
局部作用域
在函数内部声明的变量、函数或对象,它们只在声明它们的函数内部可见。当函数执行完毕后,局部作用域中的变量也会被销毁。
块级作用域
在块级别中声明的变量、函数或对象,块级作用域是由花括号包裹的代码块,通常出现在 if、for、while 等语句中。块级作用域中的变量只在块内可见,离开块后就会被销毁。