35

2 つの文字列の間に論理演算子 && を使用すると、出力として 2 番目の文字列が得られるのはなぜですか。

console.log("" && "Dog");    // ""
console.log("Cat" && "Dog"); // "Dog"

上記のような論理式では0falsenull、 、undefined""以外NaNはすべて真偽値として評価されることがわかりました。しかし、出力が最初の文字列ではなく 2 番目の文字列になるのはなぜですか? また、ブール式として評価されているため、出力が「真」ではないのはなぜですか?

4

4 に答える 4

12

これは論理演算子 && の性質によるものだと思います。Javascript は"cat" && "Dog"次の方法で式を実行します。

値 "cat" をチェックします - ""、0、null、未定義、または false 以外の値を返し、真実です。Javascript が認識&&し、式を続行し、""、0、null、未定義、または false 以外の文字列 "Dog" に直面し、真である場合、式は終了し、式はチェックした最後の値を返します。

式に置き換える&&||、最初の真の値で終わり、そのようになります

var boolean = "cat" || "dog"

最初の値を返します:cat

于 2013-06-19T20:19:13.393 に答える