14.2Hoisting / Anonymous Expressions

無名関数式の巻き上げ

無名関数式は、変数名は巻き上げられますが、関数の代入は巻き上げられません

`var anonymous = function() {}` というコードでは、`var anonymous` の宣言部分だけが巻き上げられます。そのため、代入が行われる行よりも前では、`anonymous` は `undefined` となり、関数として呼び出すことはできません。

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

  var anonymous = function () {
    console.log('anonymous function expression');
  };
}
✅ Good
function example() {
  var anonymous = function () {
    console.log('anonymous function expression');
  };

  console.log(anonymous); // => [Function: anonymous]
  anonymous(); // => 'anonymous function expression'
}