cari

Rumah  >  Soal Jawab  >  teks badan

Dalam operasi logik JavaScript, soalan kecil tentang --c dan c--.

Guru Han berkata:

<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

that If "--c" ditukar kepada "c--"", nilai c juga 0. Kenapa nilai tukar kepada 4?

Saya harap guru dapat menjawabnya, terima kasih!

正歌正歌2435 hari yang lalu1705

membalas semua(5)saya akan balas

  • 一切近乎完美

    一切近乎完美2018-03-28 15:24:52

    --c dikira dahulu dan kemudian ditugaskan kepada c iaitu bunuh dahulu dan lapor kemudian Apabila anda membunuhnya, maharaja belum tahu dan fikir dia belum mati, jadi c masih yang asli. Hanya selepas melaporkan bahawa dia tahu bahawa dia Sudah mati, c dikurangkan satu pada masa ini.

    Dan c-- ditugaskan kepada c selepas penolakan Pada masa itu, c adalah kurang satu, yang bermaksud maharaja secara peribadi mengawasi pelaksanaan.


    balas
    1
  •  

     2018-03-27 10:57:45

    Untuk --c

    a < b benar

    --c c pengurangan dahulu c=0 salah (0 adalah palsu, bukan-0 adalah benar)

    a<b&&--c salah kemudian && akan dicetuskan "Short litar" tidak melaksanakan ++a

    semua c=0, a=3

    untuk c--

    a < b true

    c-- c mula-mula menentukan benar dan salah dan kemudian mengecil sendiri, c=1 kerana semua penghakiman adalah benar Maka c pengurangan

    a<b&&--c Benar tidak akan mencetuskan "litar pintas" && Laksanakan dan hakim ++a

    Jadi c=0, a=4

    balas
    1
  • 正歌

    Terima kasih, saya faham.

    正歌 · 2018-03-27 11:08:21
  • 一生何求

    一生何求2018-03-26 21:13:25

    --Apabila c++, sebelah kiri ungkapan adalah palsu, dan ++a di sebelah kanan tidak melakukan operasi, jadi nilai a masih 3

    Apabila c++, sebelah kiri ungkapan adalah benar, jadi ++a di sebelah kanan masih perlu melakukan operasi, jadi nilai a Nilai menjadi 4

    balas
    2
  • 正歌

    正歌2018-03-26 19:48:14

    <script type=text/javascript>

    var a = 3;

    var b = 4;

    var c = 1;

    if ( a < b && c-- && ++a);/ /Pada masa ini, nilai c juga adalah 0, yang juga sepatutnya palsu ++a tidak boleh dikira, jadi nilai a masih harus 3. Mengapa ia dikira?

    {

    window.alert("OK")

    }

    window.alert(c) // c = 0

    window.alert(a) // a =3


    balas
    0
  • Batalbalas