13.4Variables / Define Where Used

必要な場所で変数を割り当てる

変数は必要な場所で割り当てますが、合理的な場所に配置します。`let`と`const`はブロックスコープであるため、不要な関数呼び出しなどを避けることができます。

`var` の時代は、変数を関数の先頭でまとめて宣言するのが一般的でした。しかし、ブロックスコープを持つ `let` や `const` では、変数を実際に使用する直前の、最も内側のスコープで宣言するのが最適です。これにより、変数の有効範囲が最小限になり、コードの可読性と保守性が向上します。

❌ Bad
// bad - unnecessary function call
function checkName(hasName) {
  const name = getName();

  if (hasName === 'test') {
    return false;
  }

  if (name === 'test') {
    this.setName('');
    return false;
  }

  return name;
}
✅ Good
// good
function checkName(hasName) {
  if (hasName === 'test') {
    return false;
  }

  const name = getName();

  if (name === 'test') {
    this.setName('');
    return false;
  }

  return name;
}