JavaScript が if/else ステートメントを決定する
if (條件 1) { 當(dāng)條件 1 為 true 時(shí)執(zhí)行的代碼; } else if (條件 2) { 當(dāng)條件 2 為 true 時(shí)執(zhí)行的代碼; } else { 當(dāng)條件 1 和 條件 2 都不為 true 時(shí)執(zhí)行的代碼; }
JavaScriptでは條件判定にif(){...}else{...}を使います。たとえば、年齢に基づいて異なるコンテンツを表示するには、if ステートメントを使用して次の內(nèi)容を?qū)g裝できます。
var age = 20; if (age >= 18) { // 如果age >= 18為true,則執(zhí)行if語句塊 alert('adult'); } else { // 否則執(zhí)行else語句塊 alert('teenager'); }
else ステートメントはオプションです。ステートメント ブロックにステートメントが 1 つだけ含まれている場合は、{} を省略できます:
var age = 20; if (age >= 18) alert('adult'); else alert('teenager');
{} を省略すると、後でステートメントを追加したいのに、{} を書き忘れた場合に、if...else が変更されてしまうという危険性があります。 .. . のセマンティクスは次のとおりです。
var age = 20; if (age >= 18) alert('adult'); else console.log('age < 18'); // 添加一行日志 alert('teenager'); // <- 這行語句已經(jīng)不在else的控制范圍了
上記のコードの else 句は、実際には console.log('age < 18'); の実行のみを擔(dān)當(dāng)し、元のalert('teenager'); を?qū)g行します。 if... else... は制御スコープ內(nèi)に屬しており、毎回実行されます。
逆に、{} を使用したステートメントは間違いありません:
var age = 20; if (age >= 18) { alert('adult'); } else { console.log('age < 18'); alert('teenager'); }
そのため、常に {} を記述することをお?jiǎng)幛幛筏蓼埂?
複數(shù)行の條件判定
より慎重に條件を判定したい場合は、複數(shù)のif...else...:
var age = 3; if (age >= 18) { alert('adult'); } else if (age >= 6) { alert('teenager'); } else { alert('kid'); }
上記の複數(shù)のif...elseを組み合わせて使用??することができます。 .. この組み合わせは、実際には if...else... の 2 つの層に相當(dāng)します:
var age = 3; if (age >= 18) { alert('adult'); } else { if (age >= 6) { alert('teenager'); } else { alert('kid'); }
しかし、通常は可読性を高めるために else if を一緒に書きます。ここでの else には if 文のみが含まれるため、{} を省略しても問題はありません。最後の個(gè)別の else は、{} を省略しないでください。
if...else... ステートメントの実行機(jī)能は、複數(shù)の if...else... ステートメントのうち、特定の條件が true の場合、それ以上の判定は行われないことに注意してください。続けて。
次のコードでティーンエイジャーが表示される理由を説明してください:
'use strict'; var age = 20; if (age >= 6) { alert('teenager'); } else if (age >= 18) { alert('adult'); } else { alert('kid'); }
年齢の値は 20 なので、実際には、年齢 >= 6 と年齢 >= 18 という條件を同時(shí)に満たします。これは、次の順序が示されています。條件判斷は非常に重要です。アダルト表示できるように修正してください。
if 條件判定文の結(jié)果が true または false でない場合はどうなりますか?例:
var s = '123'; if (s.length) { // 條件計(jì)算結(jié)果為3 // }
JavaScript は、null、未定義、0、NaN および空の文字列'' を false として扱い、その他のすべての値を true として扱うため、上記のコードの條件判定の結(jié)果は true になります。