Rumah > Soal Jawab > teks badan
(function(){
for(var i = 0; i < 5; i++) {}
console.log(i) // i = 5
})()
Soalan pertama: Bahagian mana dalam pengetahuan js ini?
Soalan kedua: Terangkan dalam istilah orang awam mengapa saya bersamaan dengan 5?
0o0
PHP中文网2017-06-12 09:31:37
Adakah masalah ini penutupan Saya tidak fikir ia adalah penutupan, dan tiada sarang fungsi Ini adalah masalah fungsi pembolehubah tempatan dan fungsi tanpa nama.
Mencipta fungsi tanpa nama dan melaksanakannya serta-merta tidak melibatkan penutupan Ia hanya menamatkan gelung,, iaitu 5.i
的值变成 5
退出循环, console.log(i)
打印当前的 i
var test = function() {
for(var i = 0; i < 5; i++) {}
console.log(i) // i = 5
}
test();
扔个三星炸死你2017-06-12 09:31:37
Ini bukan penutupan, ia hanya nilai yang dicetak selepas kelajuan gelung untuk
怪我咯2017-06-12 09:31:37
Ini adalah masalah yang disebabkan oleh js tidak mempunyai skop peringkat blok, hanya skop fungsi. . . Ju boleh terus tarik penutup. . . saya terima. . .
伊谢尔伦2017-06-12 09:31:37
Tiada perkara seperti skop peringkat blok dalam JavaScript, jadi pembolehubah di dalam gelung for {} dan jika pernyataan {} boleh diakses dari luar.
Skop terbahagi kepada skop global dan skop tempatan
Skop global dibina oleh sistem untuk anda apabila anda membuat dokumen.
Skop setempat dicapai dengan mencipta fungsi.
怪我咯2017-06-12 09:31:37
Ini biasanya muncul dalam masalah pemeriksaan penutupan
i + 1 digelung 5 kali, jadi i ialah 5
ringa_lee2017-06-12 09:31:37
Anda sepatutnya ingin tahu tentang penutupan dalam js
Oleh kerana pelaksanaan gelung for selesai apabila console.log dilaksanakan, i secara semula jadi bersamaan dengan 5
怪我咯2017-06-12 09:31:37
Mari kita lihat penutupan digabungkan dengan pemasa, atau pengikatan acara