JavaScript の論理演算において、--c と c-- に関する小さな質問です。
正歌
正歌 2018-03-26 17:19:17
0
5
1695

ハン先生はこう言いました:

<script type=text/javascript>

var a = 3;

var b = 4;

## var c = 1;

if ( a < b && --c && a)

{

window.alert("OK")

}

window.alert(c) // c = 0

window.alert(a) // a =3

「--c」を変更した場合このとき、c の値も 0 になります。a の値が 4 になるのはなぜですか?

先生方全員に答えていただければ幸いです。ありがとうございます!

正歌
正歌

全員に返信(4)
一切近乎完美

--c が最初に計算され、次に c に割り当てられます。つまり、最初に殺し、後で報告します。皇帝はまだ知らず、まだ死んでいないと考えているため、c は元の c のままです。報告して初めて自分がすでに死んでいることを知り、この時点でcが1減りました。

そして、c--は減算後のcに割り当てられます。このとき、cは1つ減っていました。つまり、皇帝が個人的に処刑を監督したことになります。


いいねを押す +1
 

--c の場合

a < b true

--c c は最初に c=0 false (0 は false、0 以外は true)

a<b&&--c false の場合、&& がトリガーされます "Short回路」は実行されません ++a

all c=0, a=3

for c--

a < b true

c-- cは最初にtrueとfalseを判定し、それからそれ自体をデクリメントします、c=1すべての判断が真であるため、 c はデクリメントします

a

したがって、c=0、a=4

いいねを押す +1
  • 返事 ありがとう、分かりました。
    正歌 著者 2018-03-27 11:08:21
一生何求

--C++の場合、式の左辺はfalseで、右辺の++aは演算を実行しないため、aの値は3のままです

C++の場合、式の左辺はtrue、したがって、右辺の ++a はまだ演算を実行する必要があるため、a の値は 4 になります

いいねを押す +2
正歌

<script type=text/javascript>

var a = 3;

var b = 4;

var c = 1;

if ( a < b && c-- && ++a);/ /このとき、c の値も 0 であり、これも false であるはずです。++a は計算されないはずなので、a の値は 3 のままであるはずです。なぜ計算されるのでしょうか。

{

window.alert("OK")

}

window.alert(c) // c = 0

window.alert(a) // a =3


いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート