JavaScript が if/else ステートメントを決定する
if (条件 1) { 当条件 1 为 true 时执行的代码; } else if (条件 2) { 当条件 2 为 true 时执行的代码; } else { 当条件 1 和 条件 2 都不为 true 时执行的代码; }
JavaScriptでは条件判定にif(){...}else{...}を使います。たとえば、年齢に基づいて異なるコンテンツを表示するには、if ステートメントを使用して次の内容を実装できます。
var age = 20; if (age >= 18) { // 如果age >= 18为true,则执行if语句块 alert('adult'); } else { // 否则执行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'); // <- 这行语句已经不在else的控制范围了
上記のコードの else 句は、実際には console.log('age < 18'); の実行のみを担当し、元のalert('teenager'); を実行します。 if... else... は制御スコープ内に属しており、毎回実行されます。
逆に、{} を使用したステートメントは間違いありません:
var age = 20; if (age >= 18) { alert('adult'); } else { console.log('age < 18'); alert('teenager'); }
そのため、常に {} を記述することをお勧めします。
複数行の条件判定
より慎重に条件を判定したい場合は、複数のif...else...:
var age = 3; if (age >= 18) { alert('adult'); } else if (age >= 6) { alert('teenager'); } else { alert('kid'); }
上記の複数のif...elseを組み合わせて使用することができます。 .. この組み合わせは、実際には if...else... の 2 つの層に相当します:
var age = 3; if (age >= 18) { alert('adult'); } else { if (age >= 6) { alert('teenager'); } else { alert('kid'); }
しかし、通常は可読性を高めるために else if を一緒に書きます。ここでの else には if 文のみが含まれるため、{} を省略しても問題はありません。最後の個別の else は、{} を省略しないでください。
if...else... ステートメントの実行機能は、複数の 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 という条件を同時に満たします。これは、次の順序が示されています。条件判断は非常に重要です。アダルト表示できるように修正してください。
if 条件判定文の結果が true または false でない場合はどうなりますか?例:
var s = '123'; if (s.length) { // 条件计算结果为3 // }
JavaScript は、null、未定義、0、NaN および空の文字列'' を false として扱い、その他のすべての値を true として扱うため、上記のコードの条件判定の結果は true になります。