JavaScript 速習チュートリアル

JavaScript のコードブロック

1. 波括弧(Curly Braces)

コードブロック(Code block)またはブロックステートメント(Block statement)とは、波括弧 { } で囲まれた一連のステートメント(命令文)のグループを指します。

コードブロックは、プログラムの実行フローを制御し、JavaScriptプログラム内での変数のスコープ(Scope)を定義するために非常に重要な役割を果たします。

2. コードブロックとステートメント

コードブロックを使用することで、複数のステートメントを単一のユニット(単位)として扱うことが可能になります。

JavaScriptの関数(Function)の本体は、常にコードブロックで囲まれます。

2.1 関数の例

function myFunction() {
  // これはコードブロックです
}

また、コードブロックは ifにおいても不可欠です。

2.2 if文の例

if (condition) {
  // これはコードブロックです
} else {
  // これはコードブロックです
}

さらに、ループ(Loop)文においてもコードブロックは欠かせません。

2.3 ループの例

for (expression 1; expression 2; expression 3) {
  // これはコードブロックです
}
while (condition) {
  // これはコードブロックです
}

3. スコープの定義

コードブロック内で letconst を使用して宣言された変数は「ブロックスコープ(Block-scoped)」となります。これは、その変数が宣言された特定のブロック内からのみアクセス可能であることを意味します。

これにより、意図しない変数の上書きを防ぎ、より整理されたコード構造を実現できます。

3.1 スコープの例

{
  let x = 10;
  // ここでは x にアクセスできます
}

// ここでは x にアクセスできません

4. スタンドアロンブロック(Standalone Blocks)

コードブロックは、if 文や関数、ループに付随することなく、独立して存在することも可能です。これをスタンドアロンブロックと呼びます。
主に letconst 変数のための新しいスコープを作成するために利用されます。

4.1 独立したブロックの例

{
  let x = 10;
  let y = 100;
  let area = x * y;
}

上記の例は、スタンドアロンブロックを使用して変数のスコープを制限する方法を示しています。

5. カプセル化(Encapsulation)

コードブロックを活用したカプセル化には、開発上の大きなメリットがいくつかあります。

5.1 変数の保護

ブロック内の変数はそのブロック内でのみ有効です。これにより、グローバルスコープの「汚染(Polluting)」を防ぎ、コードをクリーンに保つとともに、変数名の衝突リスクを最小限に抑えられます。

5.2 一時的な利用

計算のためだけに変数が必要な場合、ブロックを使用すれば「宣言・使用・破棄」のサイクルをその場で作ることができます。

5.3 コードの整理

関連する変数やステートメントを独自のスコープにグループ化することで、無理に関数やオブジェクトに切り出すことなく、コードの可読性を向上させ、ブロック外での変数名の不用意な再利用による競合を避けることができます。