JavaScript あまり知られていないブロックの使い方

以下のコードはエラーになります。

const a = 'hoge'
console.log(a)

const a = 'hoge2'
console.log(a)

同じスコープ内でconst a に割り当てを行おうとしているためです。

しかし、ブロックを使って以下のような書き方をすることができます。

{
  const a = 'hoge'
  console.log(a)
}
{
  const a = 'hoge2'
  console.log(a)
}

if文やfor文で使用される{}ですが、そのままでも使用することができ、その中は別のスコープになります。