Rantai lingkup dan ruang lingkup JavaScript adalah bagian yang paling menyakitkan dari pembelajaran saya, karena saya menghabiskan banyak waktu membaca banyak dokumen teknis tetapi tidak dapat memahaminya. Saya secara kasar tahu apa artinya, tetapi saya masih tidak tahu mengapa.
Melalui pengujian dan membaca dokumen teknis saya yang luas, saya telah merangkum pemahaman berikut. Meskipun tidak terlalu teknis, saya benar -benar dapat memahaminya.
1. JavaScript hanya dibagi menjadi global dan lokal, dan tidak ada berbagai pengubah untuk bahasa latar belakang tersebut. Jika Anda tidak menggunakan VAR dalam suatu fungsi, itu global. sebagai berikut:
<script type = "text/javascript"> varname = "c#"; // global window.name = "java"; // global varlanguage = function () {waspada (name); name = "JavaScript"; // Global var name = "js"; // Local Alert (Name); } () peringatan (nama); </script>Kode di atas mewakili secara global semua titik ke variabel yang sama, dan definisi berikut akan menggantikan yang di atas. Mengenai tiga peringatan, yaitu Underfind, JS, dan JavaScript. Ini adalah ruang lingkup yang berperan.
2. Rantai lingkup dimulai dari level 0 dan diatur ke bawah secara berurutan. Yang disebut ke bawah secara berurutan mengacu pada pengaturan anak-anak. Saat mencari variabel, pertama -tama cari mereka dari level yang sama dan kemudian cari level induk.
Dalam contoh di atas,
Hal pertama yang muncul adalah peringatan pertama dalam metode bahasa. Jika jendela global adalah 0, maka dalam contoh var name = "js" adalah 1. Peringatan pertama ditemukan di 1. Jika tidak dapat ditemukan, cari di 0. Ini ditemukan bahwa ada nama var = "js" di level yang sama, tetapi belum menetapkan nilai, sehingga underfind muncul muncul
Pop-up kedua adalah peringatan kedua dalam metode bahasa, dan dia akan mencarinya di 1, yaitu, bagian dalam metode. Dia menemukan nama dan menugaskan JS, jadi pop-up adalah JS
Pop-up ketiga adalah peringatan di bagian bawah. Karena nama global telah dipindahkan ke dalam metode ini, JavaScript muncul.
Kemudian tambahkan tautan berikutnya, kami berada di puncak metode dalam bahasa, sebagai berikut:
<scriptType = "Text/JavaScript"> varname = "javascript"; // global window.name = "javascript"; // global varlanguage = function () {alert (name); name = "JavaScript"; // global varname = "js"; // Local Alert (name); var lovelanguage = function () {alert (name); } (); } () peringatan (nama); </script>Pada saat ini, peringatan di Lovelanguage muncul dengan JS karena akan menemukan nama di tingkat bahasa, yang merupakan nama dalam bahasa. . .
Di atas adalah semua konten dari lingkup JavaScript dan rantai lingkup (wajib dibaca untuk pemula) yang dibawa kepada Anda oleh editor. Saya berharap semua orang akan lebih mendukung jejak kaki.