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!