Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Adakah javascript mempunyai skop tahap blok?

Adakah javascript mempunyai skop tahap blok?

WBOY
WBOYasal
2022-03-10 11:41:492020semak imbas

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.

Adakah javascript mempunyai skop tahap blok?

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi JavaScript 1.8.5, komputer Dell G3.

Adakah JavaScript mempunyai skop peringkat blok?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn