for
for文は括弧で囲まれ、セミコロンで区切られた、3つの任意の式から構成され、その後に繰り返し文が続きます。
文法
for ([初期化]; [条件]; [各繰り返しの最後に実行される式])
処理文
例
forの使用例
下記のfor
文は、変数i
を定義し、それを0に初期化して処理を開始しています。
i
が9より少ない数値かを調べ、次に続く文を実行し、
各繰り返し処理の後にi
の値を1増加します。
for (var i = 0; i < 9; i++) {
console.log(i);
// その他の処理文
}
例: for式の任意(省略可)項目について
forの最初の3つの全ての式は、任意項目です。 例えば、初期化のブロックで、必ずしも変数の初期化が必要というわけではありません。
var i = 0;
for (; i < 9; i++) {
console.log(i);
// その他の処理文
}
初期化のブロックと同様に、条件のブロックも任意項目です。 もし、この式を省略するのであれば、無限ループにならないように、 繰り返し処理文中にbreakが実行されるようにしなければいけません。
for (var i = 0;; i++) {
console.log(i);
if (i > 3) break;
// その他の処理文
}
3つ全てのブロックを省略することも可能です。
繰り返しになりますが、必ずそのループを終了するbreakを指定してください。
また、ある地点でbreak
の条件がtrueとなるように、変数(この例ではi
)の編集(増加)を行って下さい。
var i = 0;
for (;;) {
if (i > 3) break;
console.log(i);
i++;
}
例: 空文の使用
下記のfor
の繰り返し処理は、[各繰り返しの最後に実行される式]セクションでのノードのオフセット位置を計算するため、
文またはブロック文を必要としないため、
代わりに空文が使用されています。
function showOffsetPos (sId) {
var nLeft = 0, nTop = 0;
for (var oItNode = document.getElementById(sId); // 初期化
oItNode; // 条件
nLeft += oItNode.offsetLeft,
nTop += oItNode.offsetTop,
oItNode = oItNode.offsetParent) // 各繰り返しの最後に実行される式
/* 空文(セミコロンのみ) */ ;
console.log("要素 \"" + sId + "\" のオフセット位置:\n left: " + nLeft + "px;\n top: " + nTop + "px;");
}
// 呼び出し例:
showOffsetPos("content");
// 出力:
// "要素 "content" のオフセット位置:
// left: 0px;
// top: 153px;"
文を使用しないこのケースでは、繰り返しの宣言のすぐ後にセミコロンが置かれていることに注意してください。
仕様
注意事項
機能 | Chrome | Firefox (Gecko) |
IE | Opera | Safari |
---|---|---|---|---|---|
基本 | ◯ | ◯ | ◯ | ◯ | ◯ |
機能 | Android | Chrome for Android |
Firefox Mobile |
IE Mobile |
Opera Mobile |
Safari Mobile |
---|---|---|---|---|---|---|
基本 | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
関連項目
© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。
- 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
- 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
- MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
- "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。