高级前端js【Q573】关于词法作用域,判断以下代码输出

关于词法作用域,判断以下代码输出

更多描述

var scope = "global scope";
function checkScope() {
  var scope = "local scope";
  function f() {
    return scope;
  }
  return f;
}
 
checkScope()();

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 588

Author 回答者: shfshanyue

local scope

由于 js 为词法作用域(Lexical Scope),访问某个变量时,先在当前作用域中查找,如果查找不到则在嵌套作用域中查找,直到找到。如果找不到,则报 ReferenceError。