Rumah > Artikel > hujung hadapan web > Apakah skop dalam javascript
Dalam JavaScript, skop ialah julat pemboleh ubah (objek, fungsi) yang boleh diakses dan julat pembolehubah yang berkesan yang boleh dibaca dan ditulis dalam skop skrip boleh mengawal keterlihatan dan kitaran hayat pembolehubah .
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.
Hampir semua bahasa mempunyai konsep skop Ringkasnya, Skop ialah skop boleh diakses pembolehubah, iaitu, skop mengawal keterlihatan dan kitaran hayat pembolehubah. .
Dalam JavaScript, objek dan fungsi juga pembolehubah.
Sebelum ECMAScript6, skop pembolehubah terutamanya dibahagikan kepada skop global dan skop tempatan (juga dipanggil skop fungsi dalam ECMAScript6 dan selepas itu, skop pembolehubah dibahagikan kepada Terdapat tiga jenis: skop global, skop tempatan dan skop peringkat blok.
Pembolehubah dalam skop yang sepadan dipanggil pembolehubah global, pembolehubah tempatan dan pembolehubah peringkat blok masing-masing.
Pembolehubah global diisytiharkan di luar semua fungsi; >
Kami melihat bahawa pembolehubah tempatan v1 dan v2 mempunyai nama yang sama dengan pembolehubah global v1 dan v2 Dalam badan fungsi scopeTest, pembolehubah tempatan v1 dan v2 adalah sah, jadi hasil keluaran kedua-dua pembolehubah ini dalam fungsi. body ialah "bbb" " dan "ccc"; di luar badan fungsi, pembolehubah global v1 dan v2 adalah sah, jadi di luar badan fungsi, hasil output kedua-dua pembolehubah ini ialah "JavaScript" dan "JScript" masing-masing.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <script> var v1 = "JavaScript"; //全局变量 let v2 = "JScript"; //全局变量 let v3 = "Script"; //全局变量 scopeTest(); //调用函数 function scopeTest() { var lv = "aaa"; //局部变量 var v1 = "bbb"; //局部变量 let v2 = "ccc"; //局部变量 if (true) { let lv = "123"; //块级变量 console.log("块内输出的lv = " + lv); //123 } console.log("函数体内输出的lv = " + lv); //aaa console.log("函数体内输出的v1 = " + v1); //bbb console.log("函数体内输出的v2 = " + v2); //ccc console.log("函数体内输出的v3 = " + v3); //Script //v4为全局变量,赋值在后面,因而值为undefined console.log("函数体内输出的v4 = " + v4); } var v4 = "VBScript"; //全局变量 console.log("函数体外输出的lv = " + lv); //① 报ReferenceError错误 console.log("函数体外输出的v1 = " + v1); //JavaScript console.log("函数体外输出的v2 = " + v2); //JScript console.log("函数体外输出的v3 = " + v3); //Script console.log("函数体外输出的v3 = " + v4); //VBScript </script> </body> </html>Selain itu, pembolehubah peringkat blok lv dan pembolehubah tempatan lv mempunyai nama yang sama Dalam blok penghakiman if, pembolehubah peringkat blok lv adalah sah, jadi hasil output dalam blok ialah "123 ", manakala di luar blok, pembolehubah tempatan lv Sah, hasil keluaran pembolehubah lv ialah "aaa". Selain itu, pembolehubah global v3 dan v4 tidak ditimpa dalam badan fungsi, jadi nilai pembolehubah global adalah output, jadi hasil keluaran v3 dalam badan fungsi dan di luar badan ialah "Skrip ", manakala pembolehubah v4 Tugasan adalah selepas panggilan fungsi, jadi hasil output v4 dalam badan fungsi adalah "tidak ditentukan", manakala output di luar badan fungsi adalah selepas pengisytiharan, jadi hasilnya adalah "VBScript". lv ialah pembolehubah tempatan, jadi mengaksesnya di luar fungsi akan melaporkan ralat "ReferenceError". Selepas kod di atas dijalankan dalam penyemak imbas Chrome, buka konsol penyemak imbas dan anda boleh melihat output seperti yang ditunjukkan di bawah.
Sebab ralat dalam baris 28:
Pembolehubah lv ialah pembolehubah tempatan dan tidak sah selepas meninggalkan fungsi. Komen baris kod ini dan kemudian jalankannya Pada masa ini, buka konsol penyemak imbas dan anda akan melihat:
[Cadangan berkaitan:
tutorial pembelajaran javascript】
Atas ialah kandungan terperinci Apakah skop dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!