Rumah  >  Soal Jawab  >  teks badan

javascript - Masalah operasi tugasan

var a=0;
b=(a=3)+(a=4);
maklum(a);
maklum(b);
hasil a=4,b=7

Saya ingin bertanya, mengapa 4 Adakah operasi tugasan dari kanan ke kiri?

phpcn_u1582phpcn_u15822672 hari yang lalu800

membalas semua(5)saya akan balas

  • 仅有的幸福

    仅有的幸福2017-06-26 10:57:04

    Tempahan operasi:

    var a = 0; // a 0
    b = (a = 3) + (a = 4);
    // a = 3 ----> a为3,整个赋值语句返回3
    // a = 4 ----> a为4,整个赋值语句返回4
    // 由于返回值的内存和赋值操作用到的a的内存不同,所以b的运算所用的值,只和返回值有关,不受a的值变化的影响,因此,b = 3 + 4 = 7
    // 所以,最终a为4,b为7

    balas
    0
  • 怪我咯

    怪我咯2017-06-26 10:57:04

    Operasi tugasan digabungkan dari kanan ke kiri. Jadi perkara pertama ialah memberikan (a=3)+(a=4) kepada b. Walau bagaimanapun, (a=3)+(a=4) dilaksanakan dari kiri ke kanan. Jadi ia menunjukkan bahawa 3 diberikan kepada a, dan kemudian 4 diberikan kepada a. Jadi a akhirnya menjadi 4 dan b akhirnya menjadi 7.

    balas
    0
  • 世界只因有你

    世界只因有你2017-06-26 10:57:04

    Mula-mula laksanakan a=3, kemudian laksanakan a=4, jadi pada akhirnya a ialah 4

    balas
    0
  • 黄舟

    黄舟2017-06-26 10:57:04

    a diberi nilai 4

    balas
    0
  • PHP中文网

    PHP中文网2017-06-26 10:57:04

    b=(a=3)+(a=4) Baris kod ini dilaksanakan dari kiri ke kanan Apabila a=3 dilaksanakan, 3 ditugaskan kepada a nilai akhir a ialah 4.

    balas
    0
  • Batalbalas