& lt ; & gt ; & amp ; & ; & ; & quot ;論理演算子"


私の言うことを聞きなさい.
PHPまたは任意の静的型付け言語を使用してソフトウェアを書いている場合は、いずれかの式の値を知っているでしょう.
JavaScriptを入力します.
「論理演算子」という名前は、少しの間に完全に機能しません.より多くのapt nameは「セレクタ演算子」です
これはJavaScriptでは、``と`````````````` ``````````````````````````````````````````````````````````````````````````
引用符ES5 spec from section 11.11

The value produced by a && or || operator is not necessarily of type Boolean. The value produced will always be the value of one the two operand expressions.


これを簡単に見てください.
var a = 10;
var b = "foo"
var c = null;

a || b  // 10
a && b  // "foo"

c || b  // "foo"
c && b  // null
驚いた?
1つ目の式の値(AまたはC)についてのブールテストを行います.値がすでにbooleanでないならToBoolean coercion テストが実行できるように、発生します.
また、τ演算子については、テストが真であれば、1番目の式(AまたはC)になる.テストが偽であるならば、第2の表現値(b)に、Count -式は結果としてなる.
反対に、AND演算子の場合、テストがtrueの場合、AND &式は2番目の式の値になります.テストがfalseの場合、AND &式は最初の式の値になります.
より良い理解のために上記のコードから最初と最後の式を深く見てみましょう.
a || b;  // 10
上式では、最初の式の値(a)がBooleanであるかどうかを調べます.A ( 10 )はブールではないので、A ( 10 )が真であるので、aは真に強制されます.
テストが真であるので、加重演算子は第1の式値(10)を返します.
c && b;  // null
上記の式では、&演算子は最初の式の値がbooleanであるかどうかを調べます.C ( NULL )はbooleanではありません.したがって、NULLはfalseに強制されます.
そして、最初の値が真実であるならば、それがfalsyか第2の表現値であるならば、最初の式値を返します.C ( NULL )はFalsyですので、&演算子はそれを返します.
JavaScriptプログラマとして、常に覚えておいてください.

The value produced by a && or || operator is not necessarily of type Boolean. The value produced will always be the value of one the two operand expressions.