Rumah > Artikel > hujung hadapan web > Apakah kegunaan skop peringkat blok javascript?
Peranan skop peringkat blok: menyelesaikan konflik penamaan yang disebabkan oleh terlalu banyak pembolehubah dan fungsi global. JavaScript akan menutup mata terhadap pengisytiharan berulang, mengakibatkan keputusan pelaksanaan yang salah boleh menyelesaikan masalah ini, membolehkan setiap pembangun menggunakan pembolehubahnya sendiri tanpa perlu risau tentang mengacaukan skop global.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.
Sebarang set pernyataan dalam sepasang kurungan kerinting ({ dan }) tergolong dalam blok Semua pembolehubah yang ditakrifkan di dalamnya tidak kelihatan di luar blok kod, seperti untuk, manakala, jika
dan JavaScript tidak mempunyai skop peringkat blok (sebelum standard es6 keluar, JavaScript tidak mempunyai skop peringkat blok), iaitu, tentukan pembolehubah dalam blok kod JavaScript , pembolehubah masih boleh digunakan di luar blok kod, contohnya:
<script type="text/javascript"> var i=1; if(i==1){ var b=2; } alert(b);//输出2 function outputNumbers(count){ for(vari=0;i<count;i++){ alert(i); } alert(i); //计数 } </script>
Dalam bahasaseperti Java dan C, pembolehubah i hanya akan ditakrifkan dalam blok pernyataan gelung for . Setelah gelung tamat, pembolehubah i akan dimusnahkan. Tetapi dalam JavaScript, pembolehubah i ditakrifkan dalam objek aktif outputNumbers(), jadi ia boleh diakses di mana-mana sahaja di dalam fungsi dari masa ia ditakrifkan.
Skop peringkat sekatan boleh menyelesaikan konflik penamaan yang disebabkan oleh terlalu banyak pembolehubah dan fungsi global, kerana JavaScript akan menutup mata kepada pengisytiharan berulang (namun, ia akan melakukan pemulaan pembolehubah dalam pengisytiharan berikutnya), menyebabkan hasil yang dijalankan Ada sesuatu yang tidak kena, dan anda mungkin perlu berusaha keras untuk menangkapnya.
Dalam aplikasi besar yang ditulis oleh banyak pembangun, penggunaan skop peribadi membolehkan setiap pembangun menggunakan pembolehubah mereka sendiri tanpa perlu risau tentang mengacaukan skop global.
Walaupun tiada skop peringkat blok dalam js, fungsi penutupan/tanpa nama boleh digunakan untuk meniru skop peringkat blok.
Sintaks untuk fungsi tanpa nama dalam skop peringkat blok (selalunya dipanggil skop peribadi) adalah seperti berikut:
(function(){ //这里是块级作用域 })();
Kod di atas mentakrifkan dan memanggil fungsi tanpa nama dengan serta-merta. Melampirkan pengisytiharan fungsi dalam sepasang kurungan menunjukkan bahawa ia sebenarnya adalah ungkapan fungsi. Sepasang kurungan lain yang mengikutinya akan segera memanggil fungsi ini.
Contoh penggunaan fungsi tanpa nama untuk melaksanakan skop peringkat blok dalam JavaScript
function outputNumbers(count){ (function(){ for(var i=0;i<count;i++){ alert(i); } })(); alert(i); //导致错误! }
Dalam contoh, sebarang pembolehubah yang ditakrifkan dalam fungsi tanpa nama akan dipadamkan pada penghujung perlaksanaan. Oleh itu, pembolehubah i hanya boleh digunakan dalam gelung dan dimusnahkan selepas digunakan. Kiraan pembolehubah boleh diakses dalam skop peribadi kerana fungsi tanpa nama ini ialah penutupan, yang boleh mengakses semua pembolehubah dalam skop yang mengandungi.
Tidak kira di mana anda memerlukan beberapa pembolehubah buat sementara waktu, anda boleh menggunakan skop peribadi
[Cadangan berkaitan:pembelajaran javascript tutorial】
Atas ialah kandungan terperinci Apakah kegunaan skop peringkat blok javascript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!