Javascript之静态作用域

Posted by Shen Chaoran on July 1, 2018

静态作用域与动态作用域

  • 静态作用域:函数的作用域在函数定义的时候决定,又称为词法作用域
  • 动态作用域:函数的作用域在函数调用的时候决定

执行上下文

JavaScript 引擎并非一行一行地分析和执行程序,而是一段一段地分析执行。当开始执行一段代码时,会做相应的“准备工作”,如变量提升和函数提升。 这里的一段指的就是执行上下文,JavaScript 的执行上下文分为三种:全局代码,函数代码,eval 代码。 当有多级执行上下文时,会建立一个栈,一层一层地 push 和 pop 执行上下文。