-2

私は JavaScript の達人ではありません。私はこの構文を見ました: a != b && (c = b); 誰かが私にこれを説明できますか?

前もって感謝します

4

5 に答える 5

4

の場合a != b、 に代入bc、が真のc場合cに返します。

于 2013-01-23T11:02:22.527 に答える
2

aが と等しくない場合はb、 に割り当てbますc

ここで、左側が でない場合、右側は評価されませんtrue

于 2013-01-23T11:01:45.513 に答える
1

あなたの例では、結果は if a != bthen assign bto になりcます。真であるかどうかの評価はc処理されません (この例では)。

このステートメントifは、演算子の短絡により、簡略ステートメントのように機能します。

論理 AND を使用&&する場合、これは、AND の左側が ANDfalseの右側である場合、評価されないことを意味します。そのため、論理 AND を悪用して、一種の簡単なifステートメントを作成することができます。これは、論理 OR の場合も逆に発生します。左側が に評価されたtrue場合、右側は評価されません (全体的な結果が変更されないため)。この演算子は、C、JavaScript、Java などの言語で奇抜な短絡を起こしていることがわかります。

于 2013-01-23T11:17:51.420 に答える
0

変数aが変数と等しくない場合は、変数を変数bに割り当てますbc

于 2013-01-23T11:08:24.103 に答える
0

それはむしろ次のように書かれるべきです:

if (a != b) {
  c = b;
}

このコードは、フロー制御のために演算子の短絡を使用します&&(つまり、式の 2 番目の部分は、最初の部分が true の場合にのみ評価されます)。次に、代入も式であるという事実を使用して、代入を実行できるようにします。式、および式の値を無視します。

于 2013-01-23T11:11:32.693 に答える