JavaScript Variable Hoisting: Mendedahkan Misteri Pembolehubah Global Tidak Ditakrifkan
Apabila bekerja dengan pembolehubah JavaScript, mudah untuk menghadapi tingkah laku yang mengejutkan. Satu contoh sedemikian ialah apabila pembolehubah global kelihatan mempunyai nilai yang tidak ditentukan dalam sesuatu yang tertentu fungsi.
Contoh:
var value = 10; function test() { console.log(value); // A var value = 20; console.log(value); // B } test();
Output:
undefined 20
Penjelasan:
Tingkah laku berpunca daripada Pembolehubah JavaScript Mengangkat, yang mengalihkan pembolehubah dan pengisytiharan fungsi secara automatik ke bahagian atas skop semasa. Ini bermakna:
Sebenarnya, kod tersebut berkelakuan seolah-olah ia ditulis sebagai:
var value; function test() { console.log(value); // undefined value = 20; console.log(value); // 20 }
Nota Sampingan: Fungsi pengisytiharan juga menjalani pengangkatan. Inilah sebabnya anda boleh memanggil fungsi sebelum ia diisytiharkan, tidak seperti penugasan pembolehubah.
Kesimpulan:
Pengangkat pembolehubah harus dipertimbangkan apabila bekerja dengan pembolehubah JavaScript. Dengan memahami tingkah laku ini, pembangun boleh mengelakkan nilai yang tidak ditakrifkan yang tidak dijangka dalam kod mereka. Selain itu, sumber seperti "JavaScript Scoping and Hoisting" Ben Cherry boleh memberikan cerapan lanjut tentang aspek asas JavaScript ini.
Atas ialah kandungan terperinci Mengapa Pembolehubah JavaScript Global Saya Tidak Ditakrifkan Fungsi Dalaman?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!