Let vs. Var dalam JavaScript: Demystifying Scope and Temporal Dead Zones
Diperkenalkan dalam ECMAScript 6, kenyataan let telah mencetuskan kekeliruan di kalangan pembangun , terutamanya bagaimana ia berbeza daripada kata kunci var yang telah ditetapkan. Artikel ini menyelidiki nuansa antara dua perisytiharan pembolehubah ini, menyerlahkan peraturan skop dan kes penggunaan terbaiknya.
Skop
Perbezaan asasnya terletak pada tingkah laku skopnya. Pembolehubah yang diisytiharkan dengan var dihadkan kepada fungsi yang ditakrifkan dalam (skop fungsi), manakala pembolehubah dibiarkan terhad kepada blok yang disertakan di dalamnya (skop blok). Ini bermakna biarkan pembolehubah mempunyai skop yang lebih sempit, menghalangnya daripada berinteraksi dengan pembolehubah yang ditakrifkan di luar blok terdekatnya.
Contoh:
function run() { var foo = "Foo"; let bar = "Bar"; console.log(foo, bar); // "Foo Bar" { var moo = "Mooo" let baz = "Bazz"; console.log(moo, baz); // "Mooo Bazz" } console.log(moo); // "Mooo" console.log(baz); // ReferenceError } run();
Dalam contoh di atas, var variable moo kekal boleh diakses walaupun di luar bloknya, manakala let variable baz melemparkan ReferenceError apabila diakses di luarnya blok.
Zon Mati Temporal
Perbezaan lain ialah zon mati temporal (TDZ). Untuk pembolehubah let, terdapat TDZ dari titik pengisytiharan sehingga penghujung blok yang ditakrifkan. Dalam tempoh ini, mengakses pembolehubah let tanpa permulaan menghasilkan ReferenceError.
Contoh :
function test() { console.log(foo); // ReferenceError let foo = "Bar"; } test();
Dalam kod ini, mengakses pembolehubah let foo sebelum ia dimulakan menghasilkan a ReferenceError kerana TDZ.
Bila Menggunakan Let vs. Var
Secara umum, lebih suka menggunakan let untuk pembolehubah dalam blok untuk mengelakkan mencemarkan skop global dan mencegah perlanggaran nama berubah. Var masih berguna untuk pembolehubah yang perlu boleh diakses merentas berbilang blok atau fungsi.
Atas ialah kandungan terperinci Let vs. Var dalam JavaScript: Apakah Perbezaan dalam Skop dan Penggunaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!