Typeof由变量初始化程序击败

Aur*_*bon 1 javascript

此代码按预期打印"undefined":

console.log(foo());

function foo() {
  return typeof a;
}
Run Code Online (Sandbox Code Playgroud)

这个崩溃时出现"a is not defined"错误:

const a = foo();

function foo() {
  return typeof a;
}
Run Code Online (Sandbox Code Playgroud)

这是V8的错误还是预期的行为?

Que*_*tin 5

规格

变量是在实例化包含词法环境时创建的,但在评估变量的LexicalBinding之前可能无法以任何方式访问它们.

您正在尝试在评估LexicalBinding的过程中访问它,这是禁止的.