Dalam sesetengah bahasa pengaturcaraanseperti C, setiap keping kod dalam pendakap kerinting mempunyai skopnya sendiri dan pembolehubah tidak boleh dilihat di luar segmen kod yang diisytiharkan Kami memanggil skop peringkat blok ini ( skop blok ), dan tiada skop peringkat blok dalam JavaScript. Sebaliknya, JavaScript menggunakan skop fungsi: pembolehubah ditakrifkan dalam badan fungsi di mana ia diisytiharkan, serta dalam badan mana-mana fungsi di mana ia bersarang. Dalam kod berikut, i, j dan k yang ditakrifkan dalam kedudukan berbeza semuanya ditakrifkan dalam skop yang sama
teks fungsi(o)
{
var i=0;
makluman(jenis o);
Jika(jenis o == "rentetan")
{
var j=0;
untuk(var k=0;k<10;k )
makluman(k);//Output 0-9
alert(k);//output 10
}
makluman(j);//output 0
}
Skop fungsi JavaScript bermakna semua pembolehubah yang diisytiharkan di dalam fungsi sentiasa kelihatan dalam badan fungsi. Menariknya, ini bermakna pembolehubah sudah tersedia sebelum ia diisytiharkan. Ciri JavaScript ini secara tidak rasmi dipanggil angkat, iaitu, semua pembolehubah yang diisytiharkan dalam badan fungsi JavaScript (tidak melibatkan penugasan) adalah "lanjutan" ke bahagian atas badan fungsi. Lihat kod berikut
Salin kod
var global="hello QDao"
alert(global);//hello QDao
}
Disebabkan oleh ciri-ciri skop fungsi, pembolehubah tempatan sentiasa ditakrifkan dalam keseluruhan badan fungsi, yang bermaksud bahawa pembolehubah dalam badan fungsi meliputi pembolehubah global dengan nama yang sama. Walau bagaimanapun, pembolehubah tempatan sebenarnya tidak akan diberikan sehingga program melaksanakan penyataan var Oleh itu, proses di atas adalah bersamaan dengan: "majukan" perisytiharan pembolehubah dalam fungsi ke bahagian atas badan fungsi, sambil meninggalkan permulaan pembolehubah di bahagian atas. kedudukan asal
Salin kod
Kod adalah seperti berikut:
global="hello QDao";
alert(global);//hello QDao
}