ホームページ  >  記事  >  ウェブフロントエンド  >  js の && と || の例を深く理解する

js の && と || の例を深く理解する

零下一度
零下一度オリジナル
2017-07-19 22:32:041515ブラウズ

2 つの質問から始めましょう:

最初の質問は、なぜ a && b が true を返し、b && a が 6 を返すのか

1 var user = 6;2 var both = true;3 4 console.log( user && both);    //true5 console.log( both && user);    //6

2 番目の質問は両方ともデクリメントを実行し、最終的に出力される値は 3 のままです

1 var user = false;2 var both = 3;3 4 console.log( user && both--);    // false5 console.log(both);   // 3

まず 3 つのレベルから理解します ( && を例に挙げます):

第一レベルの理解: オペランドが両方ともブール値である場合、結果は両方が true の場合にのみ true になり、それ以外の場合は false になります。

第 2 レベルの理解: && は true 値と false 値を操作できます。両方が true 値の場合は true 値が返され、それ以外の場合は false 値が返されます。ただし、trueの値はtrueに限定されず、falseの値もfalseに限定されません。以下の値はfalseに変換されます(その他の値はすべてtrue)

未定義

null。

0/-0

NaN

" "

jsでは&&演算を行うと結果は常にtrueかfalseではなく、現在の値になります。現在の値は数値、文字列などです。

最初の式が true の場合、2 番目の式の値がその結果として使用されます。この結果は変換された値ではなく、それ自体です。

最初の式が false の場合、最初の式の値が結果として使用されます。この結果は変換された値ではなく、それ自体です。

  user = 6  both =   math = 0 console.log( user && both);     console.log( both && user);     console.log( both && math);     console.log( math && both);

理解の第 3 レベル: 短絡演算、演算プロセス、最初に左のオペランドの値を計算します。計算結果が false 値の場合、式全体の結果は false 値になります。 、左のオペランドの値は、数値の評価と同時に右の演算を停止します。左側のオペランドの結果が true の場合、結果全体は右側のオペランドの値に依存します。

短絡演算に関する注意:

&& および || 演算中、最初の式の値が演算全体の結果をすでに決定できる場合、2 番目の式は実行されません

&& 演算の場合最初の式の値が false である場合、演算結果全体が false であると判断されるため、最初の式は実行されず、そのため y-- は実行されず、y の値は 3

  x =   y = 3 console.log(x && y--);     console.log(y);

のままです。 ||

に関して、最初の式の値が true の場合、結果は変換後のものではなく、最初の式の値そのものになります。

最初の式の値が false の場合、結果は変換後ではなく、2 番目の式の値そのものになります。

1 var user = true;2 var both = 10;3 4 console.log(user || ++both);  //true5 console.log(both);   //10

&& は || と全く同じ原理ですが、動作ルールが異なります。

りー

以上がjs の && と || の例を深く理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。