Rumah >hujung hadapan web >tutorial js >Bagaimanakah `let` Mempengaruhi Kelakuan Gelung dan Skop Pembolehubah dalam JavaScript?

Bagaimanakah `let` Mempengaruhi Kelakuan Gelung dan Skop Pembolehubah dalam JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-12-14 03:20:10874semak imbas

How Does `let` Affect For Loop Behavior and Variable Scoping in JavaScript?

Memahami let dan Block Scoping dengan For Loops

biar menghalang pengisytiharan pendua dan membenarkan pembolehubah digunakan dalam penutupan. Walau bagaimanapun, penggunaannya untuk gelung boleh agak membingungkan. Dalam konteks ini, mari sertakan setiap lelaran dalam persekitaran leksikal baharu, mengikat pembolehubah gelung kepada skop tersendirinya.

Pertimbangkan 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)) }

Dalam gelung pertama, var digunakan, yang mewujudkan pembolehubah global. Akibatnya, setiap lelaran gelung mengakses pembolehubah global yang sama i, menghasilkan output '10' sepuluh kali.

Dalam gelung kedua, mari digunakan, mencipta skop blok baharu untuk setiap lelaran. Ini bermakna setiap lelaran mempunyai pembolehubah i tersendiri, diasingkan daripada yang lain. Oleh itu, output memaparkan '0' hingga '9'.

Mekanisme ini lebih daripada gula sintaksis semata-mata. Ia melibatkan penciptaan persekitaran leksikal yang unik untuk setiap lelaran, melindungi pembolehubah gelung dalam skop eksklusifnya.

Untuk menggambarkan, kod "desugared" untuk gelung var berkembang kepada urutan langkah linear yang mudah. Sebaliknya, kod "desugared" untuk gelung let memperkenalkan blok tertutup pendakap untuk menandai secara eksplisit setiap skop lelaran, mencerminkan persekitaran leksikal yang berbeza untuk setiap lelaran.

Atas ialah kandungan terperinci Bagaimanakah `let` Mempengaruhi Kelakuan Gelung dan Skop Pembolehubah dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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