Rumah > hujung hadapan web > tutorial js > Mengapakah Menggunakan `let` lwn. `var` dalam JavaScript Untuk Gelung Menghasilkan Keputusan Berbeza?

Mengapakah Menggunakan `let` lwn. `var` dalam JavaScript Untuk Gelung Menghasilkan Keputusan Berbeza?

Susan Sarandon
Lepaskan: 2024-12-24 21:51:16
asal
841 orang telah melayarinya

Why Does Using `let` vs. `var` in JavaScript For Loops Produce Different Results?

Penjelasan let dan Block Scoping in For Loops

Dalam JavaScript, kata kunci let menghalang pengisytiharan pembolehubah pendua dan membenarkan pembolehubah digunakan dalam penutupan. Walau bagaimanapun, kelakuannya dengan gelung for boleh mengelirukan.

Masalah:

Dalam kod berikut:

// prints '10' 10 times
for (var i = 0; i < 10; i++) { process.nextTick(_ => console.log(i)) }
// prints '0' through '9'
for (let i = 0; i < 10; i++) { process.nextTick(_ => console.log(i)) }
Salin selepas log masuk

Mengapa menggunakan let in gelung kedua menghasilkan berbeza output?

Penyelesaian:

Menggunakan let in untuk gelung mencipta skop blok baharu untuk setiap lelaran. Ini bermakna pembolehubah baharu i dicipta dalam setiap lelaran dan ia tidak dikongsi merentas lelaran. Dalam gelung pertama, yang menggunakan var, pembolehubah yang sama i digunakan semula dalam setiap lelaran, membawa kepada output '10' berulang kali.

Mekanisme Dalaman:

Spesifikasi ECMAScript mentakrifkan kelakuan let in untuk gelung seperti berikut:

  • Untuk setiap ungkapan permulaan (cth., biarkan i = 0), persekitaran leksikal baharu dicipta dengan pengikatan untuk nama yang dimulakan.
  • Untuk setiap ungkapan lelaran berikutnya (cth., i ), persekitaran leksikal baharu dicipta dengan salinan pengikatan daripada persekitaran sebelumnya.

Dalam contoh kedua, persekitaran leksikal baharu yang dicipta untuk setiap lelaran memastikan bahawa pembolehubah baru i digunakan dalam setiap lelaran, menghasilkan output '0' hingga '9'.

Kesimpulan:

Penggunaan let in untuk gelung mencipta skop blok dalam setiap lelaran, yang boleh berguna untuk mengelakkan konflik dan mengekalkan pengkapsulan. Tingkah laku ini bukan sahaja gula sintaksis tetapi ciri asas let in JavaScript.

Atas ialah kandungan terperinci Mengapakah Menggunakan `let` lwn. `var` dalam JavaScript Untuk Gelung Menghasilkan Keputusan Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan