2

私は、論理AND演算子を理解するための参照フレームとして、MDNDocs-LogicalOperatorsを使用しています。

私はこれらのコード例のほとんど、特にここに示されている最初の4つを理解しました。

a1=true && true       // t && t returns true
a2=true && false      // t && f returns false
a3=false && true      // f && t returns false
a4=false && (3 == 4)  // f && f returns false
a5="Cat" && "Dog"     // t && t returns Dog
a6=false && "Cat"     // f && t returns false
a7="Cat" && false     // t && f returns false

しかし、私は理解に問題がありますa5a6そしてa7

a5="Cat" && "Dog"2つの文字列がどのように評価されているのか理解できていませんtrue && true returns Dog

また、文字列「Cat」が一部としてtrueと評価されている理由も理解できていません。a6=false && "Cat" // f && t returns false

4

3 に答える 3

3

空でない文字列はすべてtrue、ブール値として評価された場合に使用されます。

文字列ではa6=false && "Cat"、左側がであるため、「Cat」はまったく評価されませんfalse

于 2013-01-15T15:40:18.640 に答える
2

まず、a5を見てみましょう。

a5="Cat" && "Dog" 

を返すdog、mdn-docsはAND(&&)と述べています:

falseに変換できる場合はexpr1を返します。それ以外の場合は、expr2を返します。したがって、ブール値とともに使用すると、&&は両方のオペランドがtrueの場合にtrueを返します。それ以外の場合は、falseを返します。

空でない文字列はfalseに変換できないため、とdogの順序を変更するdogcat、もちろん、が返されcatます。

a6 falseでは、はfalseであるfalseため、次の理由で戻ります。

falseに変換できる場合はexpr1を返します...

a7catではtrueであるため、falseである次の式に進み、falseを返します。

...それ以外の場合は、expr2を返します

于 2013-01-15T15:45:15.750 に答える
0

a && b文中aで最初に評価され、がの場合、a次にtrue評価bされます。

  1. (a5 = "Cat")(空の文字列のみが)であるを返すので、"Cat"が返されます。truefalseDog
  2. (a6 = false)を返すfalseため、2番目"Cat"の部分は評価されません。
  3. (a7 = "Cat")であるtrueため、2番目falseの部分が返されます。
于 2013-01-15T15:42:58.793 に答える