14.3Hoisting / Named Expressions

名前付き関数式の巻き上げ

名前付き関数式も同様に、変数名は巻き上げられますが、関数名や関数本体は巻き上げられません

`var named = function superPower() {}` の場合、`named` という変数名だけが巻き上げられます。関数名である `superPower` は、その関数自身の内部から再帰的に呼び出す場合にのみ有効で、外部スコープからはアクセスできません。

❌ Bad
function example() {
  console.log(named); // => undefined
  named(); // => TypeError named is not a function

  var named = function superPower() {
    console.log('Flying');
  };
}
✅ Good
function example() {
  var named = function superPower() {
    console.log('Flying');
  };

  console.log(named); // => [Function: superPower]
  named(); // => 'Flying'
}