0

オブジェクトでの論理オペランドの使用に出くわしましたが、&&オブジェクトを処理する場合にのみ、式が以下の方法で評価されるかどうかを知りたいと思います。

コードサンプル

var sampleObject = {
            size: 10, 
            shoe: {
                make: "nike",
                model: "air jordon"
            },
            color: "red"
            }

    console.log(sampleObject.size && sampleObject.shoe.model);

アウトオブconsole.log(sampleObject.size && sampleObject.shoe.model);リターンズair jordon。私の理解では、最初の条件sampleObject.sizeはtrueと評価され、そうではないfalselyため、オブジェクトに含まれる値が返されますsampleObbject.shoe.model

4

2 に答える 2

2

Javascript&&オペレーターは、最初に左側のオペランドを評価します。偽の値の場合は、式全体の値です。それが真の値である場合、右側のオペランドが評価され、返されます。

ゼロ、空の文字列、未定義、および false はすべて偽の値です。sampleObject.size の値は 10 であり、真の値であるため、右側のオペランドが評価され、式全体の値として使用されます。

これは、値がオブジェクトであることに依存しないことに注意してください。

于 2012-06-25T01:27:01.387 に答える
2

||and演算子は&&左から右に実行されます。の場合||、最初の真の値が返されます。の場合&&、これは最初の偽値です。どちらの場合も、適切な戻り値が見つからない場合は、最後のものが返されます。

したがって、この場合、式に対して真の値を返したという事実は、 と の両方が真の値であることを意味しsampleObject.sizeますsampleObject.show.model

于 2012-06-25T01:27:46.170 に答える