第三章JavaScript基本概念(五)
3210 ワード
5.語句
5.1 if文
ほとんどのプログラミング言語で最もよく使われている語句はif文です.以下はif文の使い方です.
5.2 do-while文
do-while文は後テストサイクル文で、つまり循環体のコードが実行された後だけ、輸出条件をテストします.以下は一例です.
while文の場合、循環文をテストします.つまり、循環体内のコードを実行する前に、輸出条件に対して値を求めます.以下は一例です.
_; for文も前のテストサイクル文ですが、サイクルを実行する前に変数を初期化し、サイクルを定義した後に実行するコードの能力があります.以下は一例です.
5.5 for-i文
for-in文は正確な反復文で、オブジェクトの属性を列挙するために使用できます.以下は一例です.
5.6 switch文
switch文とif文の関係は最も密接で、ECMAScriptの中のswitch文はC言語に非常に近いです.以下は一例です.
5.1 if文
ほとんどのプログラミング言語で最もよく使われている語句はif文です.以下はif文の使い方です.
if(condition) statement1 else statement2;
_; の中のconditionは任意の表現であり、この表式に対する求値の結果は必ずしもブール値ではない.ECMAScriptはBoolean()関数を自動的に呼び出してこの式の値をブール値に変換します.conditionに対して値を求める結果がtrueであれば、statement 1を実行する.conditonに対して値を求める結果がfalseであれば、statment 2を実行する.また、この2つの語句は、1行のコードであっても良いし、1つのコードブロック(1つの括弧で囲まれた複数行のコード)であっても良い.次の例を見てください.if (i>25){
alert("Greater than 25");
}else{
alert("Less than or equal to 25");
}
ただし、常にコードブロックを使用することを推奨します.実行するコードは一行だけです.5.2 do-while文
do-while文は後テストサイクル文で、つまり循環体のコードが実行された後だけ、輸出条件をテストします.以下は一例です.
var i = 0;
do {
i+=2;
}while (i<10);
alert(i);
5.3 while文while文の場合、循環文をテストします.つまり、循環体内のコードを実行する前に、輸出条件に対して値を求めます.以下は一例です.
var i = 0;
while (i<10){
i+=2;
}
alert(i);
5.4 for文_; for文も前のテストサイクル文ですが、サイクルを実行する前に変数を初期化し、サイクルを定義した後に実行するコードの能力があります.以下は一例です.
var count = 10;
for (var i=0; i<10; i++ ){
alert(i);
}
forループの変数初期化表現では、varキーワードを使用しなくても良いことを指摘する必要があります.この変数の初期化は、外部において実行されてもよい.var count = 10;
var i;
for (i=0; i< count; i++){
alert(i);
}
以上のコードは循環初期化文式で変数を宣言する効果と同じです.ECMAScriptにはブロックレベルのスコープが存在しないため、ループ内部で定義された変数は外部にもアクセスできます.たとえば:var count = 10;
for (var i=0; i<10; i++ ){
alert(i);
}
alert(i); //10
また、for文では、表式を初期化し、制御式と循環式のいずれかを選択します.これらの3つの表現を省略すると、無限ループが作成されます.たとえば:for (;;){
alert("endless...");
}
制御式だけを与えると、実際にはforサイクルをwhileサイクルに変換します.たとえば:var count = 10;
var i = 0;
for (; i < count; ){
alert(i);
i++;
}
for文は極めて柔軟性があるので、ECMAScriptの中で最もよく使われている言葉です.5.5 for-i文
for-in文は正確な反復文で、オブジェクトの属性を列挙するために使用できます.以下は一例です.
for (var propName in window){
document.write(propName);
}
ECMAScriptオブジェクトの属性には順序がありません.したがって、for-i文で循環的に出力される属性名の順序は予測できない.ただし、反復する対象変数の値がnullまたはundefinedであれば、for-i循環文はエラーを投げます.ECMAScript 5はこのような行為を修正しました.このような状況に対しては、もはや間違いを投げません.循環体を実行しないだけです.ただし、最大限の互換性を保証するために、for-i-nサイクルを使用する前に、この値がnullまたはundefinedであるかどうかを検出することを推奨します.5.6 switch文
switch文とif文の関係は最も密接で、ECMAScriptの中のswitch文はC言語に非常に近いです.以下は一例です.
switch(i) {
case 25:
alert("25");
break;
case 35:
alert("35");
break;
default:
alert("other");
}
switch文では任意のデータタイプが使用できます.各caseの値は定数ではなく、変数でもいいし、表現でもいいです.次の例を見てください.switch("hello world") {
case "hello" + "world":
alert("Greeting was found");
break;
case "goodbye":
alert("Closing was found");
break;
default:
alert("Unexpected message was found");
}
別の例:var num = 25;
switch(true) {
case num < 0:
alert("Less than 0");
break;
case num >= 0 && num <= 10:
alert("Between 0 and 10");
break;
default:
alert("More than 10");
}
switch文は比較値ではフルオペレータを使用していますので、タイプ変換は発生しません(文字列「10」は数値10に等しくない).