Dalam JavaScript, tiada konsep skop peringkat blok. Pembolehubah yang ditakrifkan dalam penyataan peringkat blok sebenarnya dicipta dalam fungsi yang mengandungi dan bukannya dalam penyataan Anda boleh meletakkan perisytiharan pembolehubah di bahagian atas badan fungsi dan bukannya meletakkan perisytiharan berhampiran tempat pembolehubah digunakan.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi JavaScript 1.8.5, komputer Dell G3.
Javascript tidak mempunyai konsep skop peringkat blok. Ini bermakna pembolehubah yang ditakrifkan dalam pernyataan peringkat blok sebenarnya dicipta dalam fungsi yang mengandungi dan bukannya dalam pernyataan.
Kod segmen 1:
var scope="global"; function f(){ console.log(scope); var scope="local" console.log(scope); } f();
Apakah yang akan dikeluarkan?
Jawapan: undefined local
Kod segmen 2:
var scope="global"; function f(){ var scope; console.log(scope); scope="local" console.log(scope); } f();
Apakah yang akan dikeluarkan?
Jawapan: undefined local
Kod segmen 3:
var scope="global"; function f(){ console.log(scope); } f();
Apakah yang akan dikeluarkan?
Jawapan: global
Melalui tiga contoh di atas, berikut menerangkan ayat "JavaScript tidak mempunyai skop peringkat blok, tetapi mempunyai skop fungsi".
Dalam JavaScript, disebabkan oleh ciri-ciri skop fungsi, segmen kod 1 dan segmen kod 2 adalah setara, dan pembolehubah setempat ditakrifkan dalam keseluruhan badan fungsi,
iaitu, tempatan skop pembolehubah dalam badan fungsi segmen kod 1 meliputi pembolehubah global dengan nama yang sama, dan hanya apabila program melaksanakan pernyataan var, skop pembolehubah tempatan akan benar-benar diberikan
. Oleh itu, proses di atas adalah bersamaan dengan: "majukan" pengisytiharan pembolehubah dalam fungsi ke bahagian atas badan fungsi, sambil meninggalkan permulaan pembolehubah pada kedudukan asal: iaitu segmen kod 2.
Dalam bahasa pengaturcaraan dengan skop peringkat blok, mengekalkan pengisytiharan pembolehubah dan kod menggunakan pembolehubah sedekat mungkin antara satu sama lain dalam skop kecil biasanya merupakan pengaturcaraan yang sangat baik
Tabiat. Oleh kerana JavaScript tidak mempunyai skop peringkat blok, sesetengah pengaturcara dengan sengaja meletakkan pengisytiharan pembolehubah di bahagian atas badan fungsi dan bukannya meletakkan pengisytiharan berhampiran dengan tempat pembolehubah digunakan. Pendekatan ini
menjadikan kod sumber mereka sangat jelas mencerminkan skop pengetahuan yang berubah-ubah.
Cadangan berkaitan: Tutorial pembelajaran javascript
Atas ialah kandungan terperinci Adakah javascript mempunyai skop tahap blok?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!