ブロック文

ブロック文は0個以上の文をグループ化するのに使用されます。 ブロックは中括弧のペア({})によって区切られます。

文法

{
  statement_1;
  statement_2;
  ...
  statement_n;
}
statement_1, statement_2, statement_n
ブロック文によってグループ化される文を指定します。

説明

ブロック文は一般的に、制御フロー文(例えば、ifforwhile)で使用されます。 例えば、

while (x < 10) {
  x++;
}

ブロック文は、セミコロンを使用して終了"しない"ことに注意してください。

ブロック文は、しばしば他の言語との混合文で呼び出されます。 これは、JavaScriptが1つのみの処理文を期待する場所で、複数の処理文を使用出来るようにしてくれます。 JavaScriptにおいて、ブロックにすることで処理文を連結することは一般的な慣習です。 これとは反対に、必ず1つの処理文を必要とする場所で、 空文を指定することで、文を与えないようにする事が出来ます。

ブロックのスコープを持たないケースについて

重要: varを使用した変数の宣言は、ブロックのスコープを持ちません。 ブロックに入れられる変数は、関数またはスクリプトに含むためにスコープされ、 それらの設定の作用は、ブロック自体を超えて持続します。 言い換えると、ブロック文はスコープを取り入れません。 "スタンドアローン"なブロックは正式な文法ですが、 あなたはC言語やJavaのブロックのように動作する事を想定しているかもしれませんが、 JavaScriptではそのように動作しないため、使用したいとは思わないでしょう。 例えば、

var x = 1;
{
  var x = 2;
}
console.log(x); // 2を出力

ブロック内のvar x文は、 ブロックの前のvar x文と同じスコープであるため、2が出力されます。 C言語またはJavaであれば、これと同義のコードであれば1を出力するでしょう。

仕様

ブラウザ互換性

デスクトップ
機能 Chrome Firefox
(Gecko)
IE Opera Safari
基本
モバイル
機能 Android Chrome for
Android
Firefox
Mobile
IE
Mobile
Opera
Mobile
Safari
Mobile
基本

関連項目

 Back to top

© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
  • 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
  • MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。