6

私の知る限り、論理&&は次のように機能します

var test = false;
var foo = test && 42;

このコードは、最初の条件が に評価される場合にのみに割り当て42られます。したがって、この例では、現在の値を保持します。foo truefoo

このスニペットがまったく機能しない理由が不思議です。

var test = "";
var foo = test && 42;

次に、割り当てられfooた値を取得します。test私はとても混乱しています。の文字列は Javascript の偽値&&の 1 つですが、このシナリオで演算子が失敗するのはなぜでしょうか?

誰かがこの仕様で私を助けてくれますか?

4

2 に答える 2

7

あなたはオペレーターを誤解しています。常に割り当て
foo = x && yます。foo

&&演算子は、その左端の「偽」オペランドに評価されます。

false && 42false と評価されます。"" && 42に評価され""ます。

var foo = test && 42;に割り当てfalseますfoo

于 2012-08-28T15:03:05.947 に答える
4

あなたはあなた自身の質問に答えました。

var foo = test && 42;

42true と評価されたfoo 場合にのみtest割り当てられます。

したがって、testが空の文字列 (false に評価される) の場合、42 は に割り当てられずfoofooは空の文字列になります。

于 2012-08-28T15:17:49.797 に答える