Memahami JavaScript Hoisting dan Scoping melalui Contoh yang Menarik
Dalam artikel baru-baru ini, Ben Cherry memberi penerangan tentang konsep menarik JavaScript mengenai angkat dan skop . Untuk menggambarkan, dia membentangkan kod berikut:
var a = 1; function b() { a = 10; return; function a() {} } b(); alert(a);
Jangkaan vs. Realiti
Secara intuitif, seseorang mungkin menjangkakan amaran untuk memaparkan "10" kerana fungsi a diisytiharkan dalam tempoh b. Walau bagaimanapun, penyemak imbas memaparkan "1" sebaliknya.
Memahami Pengangkat dan Scoping
Mengangkat ialah fenomena di mana fungsi dialihkan ke bahagian atas skopnya. Ini bermakna kod berikut akan ditulis semula oleh penterjemah:
function b() { a = 10; return; function a() {} }
Menariknya, JavaScript juga membenarkan pengisytiharan pembolehubah dalam fungsi menggunakan fungsi sintaks a() {}. Ini bersamaan dengan var a = function () {};.
Memahami Urutan Pelaksanaan
Kod pada dasarnya berfungsi seperti berikut:
Oleh itu, amaran memaparkan "1" dan bukannya "10" kerana pembolehubah global a tidak terjejas oleh perubahan yang dibuat kepada pembolehubah tempatan a dalam fungsi.
Atas ialah kandungan terperinci Mengapa Kod JavaScript Ini Makluman '1' Daripada '10'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!