Rumah >hujung hadapan web >tutorial js >Adakah Pernyataan `let` Mencipta Sifat Global dalam JavaScript?
Adakah Biarkan Penyata Memperkenalkan Sifat Global?
Dalam JavaScript, pengisytiharan var mencipta sifat pada objek global. Walau bagaimanapun, biarkan pengisytiharan, yang diperkenalkan dalam ES6, menguatkuasakan skop leksikal dengan keterlihatan peringkat blok.
Adakah benarkan Pengisytiharan Mencipta Sifat Global?
Mengikut spesifikasi ECMAScript, biarkan pernyataan jangan mencipta sifat pada objek global. Pengikatan global terutamanya disimpan dalam rekod persekitaran objek persekitaran global, yang dikaitkan dengan objek global. Pengisytiharan fungsi, penjana dan pembolehubah menggunakan var disertakan dalam rekod persekitaran objek ini, manakala pengisytiharan lain, seperti biarkan, disimpan dalam rekod persekitaran deklaratif.
Penjelasan
Tidak seperti var, yang mencipta sifat pada objek global secara langsung, biarkan pengikatan terkandung dalam rekod persekitaran deklaratif. Rekod ini menggunakan struktur data dalaman, menjadikannya tidak boleh diakses secara luaran. Rekod persekitaran objek, sebaliknya, memanfaatkan objek JS untuk penyimpanan data, di mana setiap sifat objek mewakili pengikatan. Akibatnya, pengikatan var dicerminkan sebagai sifat objek global.
Kelakuan Penyemak Imbas dan Node.js
Dalam penyemak imbas, sesetengah pelaksanaan, seperti Firefox, mempamerkan gelagat yang bercanggah spesifikasi. biarkan pengikatan muncul sebagai sifat pada objek global (tetingkap). Walau bagaimanapun, dalam persekitaran Node.js yang ketat, menggunakan bendera --harmony atau --harmony_top_level, biarkan pengikatan diasingkan dengan betul dalam rekod persekitaran deklaratif.
Kesimpulan
Walaupun skop leksikal mereka, biarkan pengisytiharan tidak memperkenalkan sifat pada objek global. Sebaliknya, mereka terhad kepada rekod persekitaran deklaratif persekitaran global, menekankan pengkapsulan dan keterlihatan peringkat blok yang mereka sediakan.
Atas ialah kandungan terperinci Adakah Pernyataan `let` Mencipta Sifat Global dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!