国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript - Masalah setTimeout
某草草
某草草 2017-06-14 10:53:57
0
3
623

ujian fungsi() {

  var a = 1;
  setTimeout(function() {
    alert(a);
    a = 5;
  }, 1000);
  a = 19;
setTimeout(function() {
   alert(a);
    a = 4;
  }, 3000);
}
test();
alert(0);

想問(wèn)一下,為什么最后會(huì)彈出5?
某草草
某草草

membalas semua(3)
僅有的幸福

Pertama sekali, adalah disyorkan agar subjek membaca artikel tentang JavaScript
Penjelasan terperinci tentang mekanisme operasi JavaScript Event Loop

Artikel ini menerangkan secara terperinci prinsip pengundian acara JavaScript

Mari kita bercakap tentang soalan topik:

1. Utas utama akan dilaksanakan terlebih dahulu Apabila test() dilaksanakan, dua setTimeout akan dimasukkan ke dalam baris gilir tugasan, dan kemudian amaran(0) akan dilaksanakan, jadi 0 akan dikeluarkan pada masa ini masa, nilai a ialah 19, kerana setTimeout Ia belum dilaksanakan lagi, tiada peluang tugasan lain untuk a;

2 Selepas utas utama dilaksanakan, ia kemudian meninjau baris gilir tugasan untuk melaksanakan tugasan yang dijadualkan Memandangkan masa tamat masa set pertama adalah lebih pendek daripada yang kedua, panggilan balik setTimeout pertama dilaksanakan terlebih dahulu. akan dikeluarkan selepas kira-kira 1s Satu langkah 19, kemudian a diberikan nilai 5;

3 Kemudian laksanakan setTimeout kedua Kerana kedua-dua setTimeout dimasukkan ke dalam baris gilir pada masa yang sama, panggilan balik setTimeout kedua akan dilaksanakan kira-kira 2s kemudian. dan kemudian akan menjadi Nilai yang ditetapkan ialah 4. Sebab mengapa ia lebih kurang 2s adalah kerana pemasa Javascript tidak tepat

三叔

Nyahpepijat anda sendiri akan membantu anda memahami mekanisme dengan lebih teliti

漂亮男人

Selepas pemasa pertama dilaksanakan, a global telah menjadi 5
Perubahan a dalam fungsi ujian: 1-19-5-makluman terakhir(a)-4

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan