Mari kita lihat sekeping kod dahulu
function show(){ alert(abc); } var abc="defg"; show();
Orang yang mempunyai pengalaman dalam pengaturcaraan C atau Java mungkin berkata: "Program ini sudah mati. Pembolehubah ditakrifkan selepas fungsi yang merujuk pembolehubah. Pepijat akan membunuh anda pada penyemak imbas Apakah hasilnya?" Berfungsi dengan sempurna! Seterusnya, mari kita bincangkan tentang perkara yang berlaku - perbezaan antara pembolehubah yang ditakrifkan dengan var dan tanpa var.
1. Tiada var
Ringkasnya, adalah tidak selamat untuk meninggalkan var semasa mentakrifkan pembolehubah, tetapi ia adalah sah. Pada masa ini, tidak kira di mana pembolehubah ditakrifkan, jurubahasa akan memberikan pembolehubah skop global.
2. Terdapat var
Selamat dan sah. Skop pembolehubah yang ditentukan bergantung pada tempat ia ditakrifkan. Mengenai apakah skop tersebut secara khusus, sila rujuk artikel "Skop JavaScript" dalam blog ini.
Dengan cara ini, masalah pada permulaan dapat diselesaikan. Apa yang ada di dalam fungsi ialah definisi abc, tetapi nilainya tidak ditentukan Pada masa ini, abc mempunyai skop global, dan apa yang berada di luar fungsi hanyalah kemas kini kepada nilai abc.