关于 Javascript 提升的困惑

Confusion about Javascript Hoisting

我以为我掌握了提升的概念,但下面的代码让我感到困惑。 return1怎么办?第二个 example() 函数会被提升到第一个之上吗?

function example() {
  return 9;
}

console.log(example());

function example() {
  return 1;
}

如果在编译阶段挂起函数声明,在执行阶段执行函数表达式。 returns 7 下面的代码怎么来的?仅仅是因为先声明了示例表达式吗?

var example = function() {
  return 7;
}

console.log(example());

function example() {
  return 0;
}

提前致谢!

调用 var example = function() 而不是 function example() 的原因是提升的顺序。

Functions are hoisted first, then variable declarations, per ECMAScript 5, section 10.5 which specifies how hoisting happens.

在此处阅读更多内容: