ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の「 && 」と「 || 」についての簡単な説明
jQuery フレームワークやその他の JS プラグインでは、「 && 」と「 || 」が頻繁に使用されることがあります。では、これら 2 つの記号は何を意味するのでしょうか?使い方?まだもう少し掘り下げる必要があると思います。
1. 原則:
&& 演算子の特性: 論理演算式の 1 つが false である限り、false の値が取得され、true の場合はその後の値が取得され、false の場合は、その前に取られてしまいます。
|| 演算子の特性: 論理演算式の 1 つが true である限り、true の値が最初に取得され、false の場合は最後に取得されます。
jsの論理演算では、0、""、null、false、未定義、NaNの5つのデータ型がfalseと判定されることがわかっています。そして、js の論理演算中に、上記の原則とこれら 5 つのデータ型に基づいて対応する判断を行うことができます。直接デモにアクセスしてください...
2. オリジナルのデモ:
まず問題を見せてください! ! !
たとえば、生徒の成績に基づいて成績を判断したい場合、90 点は A、80 点は B、60 点は C、残りは D を意味します。
それから、これを行うことができます:
JS コード:
var score = 90; var grade = ''; if(score === 90){ grade = "A"; }else if(score === 80){ grade = "B"; }else if(score === 60){ grade = "C"; }else{ grade = "D"; } console.log("当前学生等级为:" + grade); // 当前学生等级为:A
またはこれ:
var score = 90; var grade = ''; switch(score){ case 90: grade = "A"; break; case 80: grade = "B"; break; case 60: grade = "C"; break; default: grade = "D"; break; }; console.log("当前学生等级为:" + grade); // 当前学生等级为:A
3. デモを最適化します:
実際、「 && 」と「 || 」を使用すると、次のことが可能です。上記のように面倒な作業を行う必要はありません。
var score = 90; var grade = (score===90 && 'A') || (score===80 && 'B') || (score===60 && 'C') || 'D'; console.log("当前学生等级为:" + grade); // 当前学生等级为:A
上記のコードは次のように理解できます:
score の値が 90 に等しい場合、score===90 の論理式が成立し (つまり true)、その後の代入演算が行われます。 'A' の論理演算が実行され、次の "||" 論理演算も無視できます ("||" 演算子の特徴は、前の演算子が true になると、後でそれを実行する必要がないためです)。 )。
scoreの値が90に等しくない場合、論理式score===90は成立しません(つまり、偽です)。「&&」演算子の特性によれば、「(」であることがわかります。スコア===90 && 'A ')" このコードは、後で 'A' の代入演算を実行しません。同時に、コード全体「(score===90 && 'A')」は false であるため、その後、「||」の特性に従って、論理式全体が引き続き実行されます。
類推すると、前の論理式がすべて true でない場合、「||」の特性に従って (すべてが false の場合、最後のものが採用されます)、最終的な評価の割り当ては「D」になります。
JSON フォームを使用して上記の論理操作を処理することもできます:
var score = 90; var grade = {90:"A", 80:"B", 60:"C"}[score] || 'D'; console.log("当前学生等级为:" + grade); // 当前学生等级为:A
ここでは、JSON オブジェクトのプロパティ読み取りを使用します。「JSON object.property value」が存在する (true) 場合、対応する値は次のようになります。取得された属性のキー値 (A、B、または C)。 JSONオブジェクトにscore属性値が存在しない場合は、「||」以降の内容が実行され、成績には値「D」が割り当てられます。
もちろん、上記の数値比較はあまり実用的ではないことがわかります。たとえば、生徒のスコアが 85 点の場合、成績も「D」になりますが、これは明らかに不適切です。 ! !
そこで、上記のコードを最適化し、値の「等価比較」を「範囲間隔比較」に変更できます。
var score = 85; var grade = (score>=90 && 'A') || (score>=80 && 'B') || (score>=60 && 'C') || 'D'; console.log("当前学生等级为:" + grade); // 当前学生等级为:B
以上がこの記事の内容です、この記事の内容が皆様の勉強や仕事のお役に立てれば幸いです、PHP中国語サイトも応援させていただきます!
JavaScript の「 && 」と「 || 」に関するその他の記事については、PHP 中国語 Web サイトに注目してください。