JavaScript の「 && 」と「 || 」についての簡単な説明

高洛峰
リリース: 2017-02-03 13:39:40
オリジナル
1084 人が閲覧しました

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 サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!