1. Variabel
Variabel ecmascript adalah variabel longgar. Variabel longgar yang disebut berarti bahwa nama variabel dapat menampung semua jenis data. Setiap variabel hanyalah placeholder untuk menyimpan nilai.
Definisi: var firstDemo;
2. Lingkup variabel
2.1 Konsep Dasar
Gunakan var untuk menentukan variabel: Tentukan variabel lokal yang menentukan ruang lingkup variabel. Metode mendefinisikan variabel ini juga merupakan deklarasi eksplisit.
Jika Anda tidak memahami ini, Anda dapat melihat contoh sederhana dan kasar berikut:
Salinan kode adalah sebagai berikut:
tes();
function test () {
var firstdemo = "hello"; // tentukan variabel lokal
Peringatan (FirstDemo); // Halo
}
tes();
function test () {
var firstdemo = "hello"; // tentukan variabel lokal firstDemo
}
Peringatan (FirstDemo); // Laporkan kesalahan, FirstDemo tidak didefinisikan
Dari dua contoh di atas, jika suatu variabel didefinisikan menggunakan VAR dalam fungsi, variabel akan dihancurkan setelah fungsi keluar.
OMit var untuk mendefinisikan variabel: selama fungsi yang mendefinisikan variabel disebut sekali, variabel dapat diakses secara global. Metode mendefinisikan variabel ini juga merupakan deklarasi implisit
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
tes();
Peringatan (FirstDemo); //Halo
function test () {
firstDemo = "halo";
}
</script>
Tips: Variabel yang dideklarasikan secara eksplisit sudah dikompilasi ke dalam objek panggilan pada saat pra -kompilasi (misalnya, var t = 1; var t = 1 ketika pra -kompilasi; t = 1 ketika ditafsirkan;) tidak seperti variabel yang dideklarasikan secara implisit yang didefinisikan sebagai variabel global hanya ketika ditafsirkan.
Mengetahui ruang lingkup variabel dapat membantu kita berpikir tentang bagaimana mendeklarasikan variabel secara wajar, yang tidak hanya mengurangi overhead memori yang tidak perlu, tetapi juga sangat menghindari masalah yang disebabkan oleh definisi berulang variabel dan variabel yang ditentukan sebelumnya.
2.2 Analisis Lingkup
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
fungsi demofungsi {
Document.writeln (S)
}
var i = 0; // Tentukan variabel global
function test () {
Demofungsi (i);
fungsi innerfunction () {
var i = 1; // Tentukan variabel lokal
Demofungsi (i);
}
fungsi dalam ();
Demofungsi (i);
}
tes();
</script>
Hasil Output: 0 1 0
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
fungsi demofungsi {
Document.writeln (S)
}
var i = 0;
function test () {
Demofungsi (i);
fungsi innerfunction () {
Demofungsi (i);
var i = 1;
Demofungsi (i);
}
fungsi dalam ();
Demofungsi (i);
}
tes();
</script>
Hasil output:
A, 0 0 1 0
B, 0 tidak ditentukan 1 0
C, 0 kesalahan saya tidak didefinisikan
Anda dapat menebak mana yang merupakan hasilnya, dan alasannya akan dijelaskan secara rinci dalam pesan tersebut.
Di atas adalah semua tentang artikel ini. Sederhananya, ruang lingkup variabel dalam bahasa pemrograman apa pun adalah detail yang sangat kritis. Ruang lingkup variabel dalam JS relatif lebih bebas daripada bahasa seperti Java dan C. Fitur besar adalah bahwa variabel JS tidak memiliki ruang lingkup level blok, dan variabel dalam fungsi valid di seluruh fungsi.