javascript - Soalan tentang mengapa nilai i sama dengan 5
欧阳克
欧阳克 2017-06-12 09:29:37
0
8
876
(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

欧阳克
欧阳克

温故而知新,可以为师矣。 博客:www.ouyangke.com

membalas semua(8)
Ty80

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

Ini bersamaan dengan:

var test = function() {
    for(var i = 0; i < 5; i++) {}
    console.log(i) // i = 5
}
test();
扔个三星炸死你

Ini bukan penutupan, ia hanya nilai yang dicetak selepas kelajuan gelung untuk

刘奇

Ini adalah masalah yang disebabkan oleh js tidak mempunyai skop peringkat blok, hanya skop fungsi. . . Ju boleh terus tarik penutup. . . saya terima. . .

伊谢尔伦

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.

刘奇
  • Ini biasanya muncul dalam masalah pemeriksaan penutupan

  • i + 1 digelung 5 kali, jadi i ialah 5

左手右手慢动作
  1. Anda sepatutnya ingin tahu tentang penutupan dalam js

  2. Oleh kerana pelaksanaan gelung for selesai apabila console.log dilaksanakan, i secara semula jadi bersamaan dengan 5

刘奇

Mari kita lihat penutupan digabungkan dengan pemasa, atau pengikatan acara

左手右手慢动作

Penutupan dalam js,

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!