時には、異なる条件に基づいて異なるアクションを実行する必要があります。
これを行うには、if
ステートメントと条件演算子?
、これは”疑問符”演算子とも呼ばれます。
“if”ステートメント
if(...)
ステートメントは、かっこ内の条件を評価し、結果がtrue
の場合、コードブロックを実行します。,
例:
let year = prompt('In which year was ECMAScript-2015 specification published?', '');if (year == 2015) alert( 'You are right!' );
上記の例では、条件は単純な等価性チェック(year == 2015
)ですが、はるかに複雑になることがあります。,
複数のステートメントを実行する場合は、中括弧でコードブロックをラップする必要があります。
if (year == 2015) { alert( "That's correct!" ); alert( "You're so smart!" );}
中括弧でコードブロックをラップすることをお勧めします{}
if
ステートメントを使用するたびに、コードブロックをラップすることをお勧めします。実行する文が一つしかない場合でも。 その改善を読む
ブール変換
if (…)
ステートメントは、かっこ内の式を評価し、結果をブール値に変換します。,
タイプ変換の章から変換ルールを思い出してみましょう:
- 数値
0
、空の文字列""
、null
、undefined
、およびNaN
すべてがfalse
になります。 そのため、彼らは”偽の”値と呼ばれています。li>
- その他の値は
true
になるため、”truthy”と呼ばれます。,したがって、この条件下でのコードは実行されません。
if (0) { // 0 is falsy ...}
…この条件の中では、常に次のようになります。
if (1) { // 1 is truthy ...}
私たちは次のようになります。
私たちは次のようになります。また、事前に評価されたブール値をif
に渡すこともできます。
let cond = (year == 2015); // equality evaluates to true or falseif (cond) { ...}
“else”句
if
ステートメントには、オプションの”else”ブロックを含めることができます。 条件が偽の場合に実行されます。,
例:
いくつかの条件:”else if”
条件のいくつかのバリアントをテストしたい場合があります。 Div id=”8c4b2b981a”>
句により、これを行うことができます。
例:
上記のコードでは、JavaScriptは最初にyear < 2015
をチェックします。 それが偽であれば、次の条件year > 2015
に進みます。 それも偽であれば、最後のalert
が表示されます。
より多くのelse if
ブロックが存在する可能性があります。 最後のelse
はオプションです。
条件演算子’?,’
場合によっては、条件に応じて変数を割り当てる必要があります。
たとえば、
いわゆる”条件付き”または”疑問符”演算子を使用すると、より短く簡単な方法でそれを行うことができます。
演算子は疑問符で表されます?
。 演算子には三つのオペランドがあるため、”三項”と呼ばれることもあります。 それは実際にはJavaScriptの唯一の演算子であり、それほど多くのものがあります。,
構文は次のとおりです。
let result = condition ? value1 : value2;
condition
が評価されます。trueの場合はvalue1
が返され、それ以外の場合はvalue2
が返されます。
例えば:
let accessAllowed = (age > 18) ? true : false;
技術的には、age > 18
の周りに括弧を省略することができます。 クエスチョンマーク演算子の優先順位は低いため、比較の後に実行されます>
。,
この例では、前の例と同じことを行います。
しかし、括弧はコードをより読みやすくするので、それらを使用することをお勧めします。
注意:
上記の例では、できるかどうかを質問マークオペレーターの比較そのものを返しますtrue/false
:
// the samelet accessAllowed = age > 18;
複数’?’
疑問符演算子のシーケンス?
は、複数の条件に依存する値を返すことができます。,
たとえば、
let age = prompt('age?', 18);let message = (age < 3) ? 'Hi, baby!' : (age < 18) ? 'Hello!' : (age < 100) ? 'Greetings!' : 'What an unusual age!';alert( message );
最初は何が起こっているのか把握するのが難しいかもしれません。 しかし、よく見ると、それは単なる通常のテストシーケンスであることがわかります。
これはif..else
:
if (age < 3) { message = 'Hi, baby!';} else if (age < 18) { message = 'Hello!';} else if (age < 100) { message = 'Greetings!';} else { message = 'What an unusual age!';}
‘の非伝統的な使用?,’
時には疑問符?
の置換として使用されますif
:
let company = prompt('Which company created JavaScript?', '');(company == 'Netscape') ? alert('Right!') : alert('Wrong.');
条件に応じてcompany == 'Netscape'
、?
の後の最初または二番目の式が実行され、アラートが表示されます。
ここでは変数に結果を割り当てません。 代わりに、条件に応じて異なるコードを実行します。
この方法では、疑問符の演算子を使用することはお勧めしません。,
表記は、同等のif
ステートメントよりも短く、一部のプログラマにアピールします。 しかし、それは読みにくいです。
比較のためにif
を使用して同じコードがあります:
let company = prompt('Which company created JavaScript?', '');if (company == 'Netscape') { alert('Right!');} else { alert('Wrong.');}
私たちの目はコードを垂直にスキャンします。 いくつかの行にまたがるコードブロックは、長い水平命令セットよりも理解しやすいです。,
クエスチョンマーク演算子?
の目的は、その条件に応じてある値または別の値を返すことです。 まさにそのために使ってください。 さまざまなコードブランチを実行する必要がある場合は、if
を使用します。
Leave a Reply