Variabel dan deklarasi variabel adalah konsep paling dasar dari suatu bahasa, dan pemula akan segera menguasainya. Hal yang sama berlaku untuk mendeklarasikan variabel dalam JavaScript, ini sangat sederhana var (kata kunci) + nama variabel (pengidentifikasi).
Cara 1
tes var;
var test = 5; Perlu diperhatikan bahwa kalimat ini tidak dapat dimasukkan ke dalam fungsi, jika tidak maka akan menjadi variabel lokal. Ini adalah cara pertama untuk mendeklarasikan variabel global.
Cara 2
tes = 5;
Tanpa menggunakan var, langsung berikan nilai ke pengujian pengidentifikasi, yang secara implisit akan mendeklarasikan pengujian variabel global. Bahkan jika pernyataan tersebut berada di dalam suatu fungsi, test menjadi variabel global ketika fungsi tersebut dijalankan.
Cara 3
jendela.test;
window.test = 5; Metode ini sering digunakan untuk mengekspos beberapa fungsi ke dunia setelah fungsi anonim dijalankan. Seperti kalimat terakhir di JQuery1.5
window.jQuery = jendela.$ = jQuery;
Jika hanya menggunakan uji variabel, tidak akan ada perbedaan antara ketiga metode tersebut. Misalnya: alert(test) akan menampilkan 5. Namun, terdapat perbedaan antara ketiga metode tersebut dalam beberapa kasus. Deklarasikan tiga variabel a1, a2, a3 masing-masing dengan tiga cara di atas.
a1 = 11;
var a2 = 22;
jendela.a3 = 33;
1. untuk di jendela
untuk(a di jendela){
jika(a=='a1'||a=='a2'||a=='a3'){
peringatan(a)
}
}
IE6/7/8/9: Hanya a3 yang muncul, menunjukkan bahwa variabel global yang dideklarasikan melalui metode pertama dan kedua tidak dapat diperoleh melalui for di jendela.
Firefox/Chrome/Safari/Opera: a1, a2, dan a3 semuanya muncul, menunjukkan bahwa variabel global yang dideklarasikan dengan tiga cara dapat diperoleh melalui for di jendela.
2.hapus
mencoba {
peringatan(hapus a1);
}catch(e){alert('Tidak dapat menghapus a1')}
mencoba{
peringatan(hapus a2);
}catch(e){alert('Tidak dapat menghapus a2')}
mencoba{
peringatan(hapus a3);
}catch(e){alert('Tidak dapat menghapus a3')}
Hasilnya adalah sebagai berikut
Seperti yang Anda lihat,
1. hapus a2 salah di semua browser. Artinya, variabel yang dideklarasikan melalui var tidak dapat dihapus, dan semua browser berperilaku sama. Hal ini juga disebutkan dalam buku Badak.
2. Variabel global yang dideklarasikan melalui window.a3 tidak dapat dihapus di IE6/7/8, tetapi dapat dihapus di IE9/Firefox/Chrome/Safari/Opera.
Meskipun terdapat perbedaan pada dua poin di atas, namun saat digunakan dalam pengoperasian, keduanya mengembalikan nilai true.
alert('a1' di jendela);//benar
alert('a2' di jendela);//benar
alert('a3' di jendela);//benar
Saat menggunakan with untuk membuka objek penutupan jendela, semua browser berperilaku sama, sebagai berikut
dengan(jendela){
jika(a1){
peringatan(a1);//11
}
jika(a2){
peringatan(a2);//22
}
jika(a3){
peringatan(a3);//33
}
}