三項演算子がどのように機能するかを理解しようとしていますが、この例に出くわしました:
b.d >= mystr.length && (function1(b, a), a=0);
どういう意味?AND演算子のように使用されていますか?これは通常のステートメントにどのように変換されますか? a=0 の前のコマは何を意味しますか? ありがとう!
三項演算子がどのように機能するかを理解しようとしていますが、この例に出くわしました:
b.d >= mystr.length && (function1(b, a), a=0);
どういう意味?AND演算子のように使用されていますか?これは通常のステートメントにどのように変換されますか? a=0 の前のコマは何を意味しますか? ありがとう!
それは三元ではありません。
また、そのグループ化演算子内のコンマは、基本的に、グループが常に最後の式の値、a=0
つまり 0 を返すことを保証します。
この例は、常に false または 0 (これは false) に評価されます。
編集:
完全を期すために、ここに三項演算子を示します。
a > b ? functionIfTrue() : functionIfFalse();
論理的には次のものと同じです。
if ( a > b ){
functionIfTrue();
} else {
functionIfFalse();
}
&&
AND 演算子です。左辺が true の場合、右辺を評価します (そして返します)。は,
コンマ演算子です。(コンマ演算子は、その両側を左から右に評価し、右側を返します)。したがって、このコードは次のようになります。
if (b.d>=mystr.lengh) {
function1(b,a);
a=0;
}
(コードが 0 を返すことを除いて)
(私の母国語はC
ですので、間違っているかもしれませんが、この場合、javascript は C のように動作すると思います)
&&
演算子は論理 AND 演算子です。式を左から右に評価し、最初の偽の値または最後の式の値を返します。
最後の式に到達すると、それが何であれ、その値を返します。
そう:
var x = (1 < 2) && ( 4 > 3) && 'fred';
xを "fred" に設定します。
var y = (1 < 2) && 0 && 'fred';
yを に設定し0
ます。