1. Cakupan variabel Javascript
Dalam JavaScript, variabel pada dasarnya dibagi menjadi dua jenis: variabel lokal dan variabel global, dan cakupan yang sesuai juga merupakan cakupan lokal dan cakupan global.
1 Variabel dan cakupan lokal
Variabel lokal umumnya dideklarasikan dan digunakan di dalam badan fungsi:
function func(){ var i=12;//Variabel lokal...}
Cakupan variabel lokal digunakan di dalam isi fungsi tempat variabel tersebut dideklarasikan.
Siklus deklarasi variabel lokal diinisialisasi ketika fungsi dipanggil dan dijalankan, dan dimusnahkan setelah pemanggilan fungsi selesai.
2. Variabel dan cakupan global
Variabel global umumnya dideklarasikan di luar isi fungsi:
var i=12;//fungsi variabel global func(){......}
Ada juga variabel yang digunakan secara langsung tanpa deklarasi, dan defaultnya adalah variabel global:
function func(){ i=12;//Tidak dideklarasikan (dideklarasikan menggunakan kata kunci var), defaultnya adalah variabel global}
Variabel global dapat digunakan di semua skrip dan metode di halaman saat ini, dan cakupannya ada di skrip halaman saat ini.
Siklus deklarasi variabel global dibuat ketika variabel diinisialisasi dan dimusnahkan ketika halaman saat ini ditutup.
2. jenis kata kunci
Kata kunci typeof terutama digunakan untuk mendeteksi tipe data variabel. Tipe data utama dalam JavaScript adalah string, angka, Boolean, objek, dll.
console.log(typeof 'str');//stringconsole.log(typeof 23);//numberconsole.log(typeof false);//booleanconsole.log(typeof [1,3,12]);//objectconsole. log(typeof {nama:'jack',usia:12});//objectconsole.log(typeof new Date());//object
Catatan: Array dan objek json di js semuanya bertipe data objek.
3. batal dan tidak terdefinisi
Null dan tidak terdefinisi sering kali muncul di JavaScript, menunjukkan bahwa nilai suatu variabel kosong atau suatu variabel tidak ditentukan. Saat mengekspresikan nilai, nilai tersebut dapat dinyatakan sebagai nilai null, namun tetap berbeda dalam hal tipe datanya.
console.log(typeof null);//objectvar persion = null;console.log(persion);//nullconsole.log(typeof tidak terdefinisi);//undefinisivar persion2;console.log(persion2);//tidak terdefinisi
Tipe data null adalah objek, dan tipe data tidak terdefinisi adalah tidak terdefinisi.
Ketika suatu variabel dideklarasikan, nilainya adalah nol, dan nilai variabelnya adalah nol; ketika suatu variabel hanya dideklarasikan, tanpa penugasan, nilainya tidak terdefinisi.
Mari kita lihat serangkaian perbandingan lainnya:
console.log(null==undefinisi);//nilai sebenarnya sama console.log(null===undefinisi);//tipe palsu tidak sama
Dapat dilihat bahwa ketika null dan undefinisi mewakili nilai, keduanya mewakili kosong; tipe data null adalah objek, dan tipe data tidak terdefinisi adalah tidak terdefinisi. Nilai yang dideklarasikan tanpa inisialisasi tidak terdefinisi.
Berikut ini adalah suplemennya
Situasi Satu
<skrip> var i; //Variabel global//Nama metode adalah nomenklatur unta //Variabel dalam metode adalah variabel lokal function sayHello(){ var x=100; / /Output 100 alert(x); //Kesalahan dilaporkan karena x adalah variabel lokal dan tidak dapat diakses</script>
Situasi Dua
<skrip>fungsi sayHello(){ var x=100; if(x==100){ var y=x+1; alert(y); //Keluaran 101 } peringatan(y); Di dalam metode ini, tidak ada cakupan tingkat blok, yang tidak mungkin dilakukan di C#! ! ! for(var i=0;i<2;i++){ alert(i) } //Variabel yang didefinisikan dalam perulangan for adalah cakupan level blok alert(i); //Karena i adalah variabel lokal, 2 adalah output } ucapkanHalo();</script>
Catatan: Variabel tidak perlu dideklarasikan dengan var sebelum digunakan. Variabel tersebut akan dianggap sebagai "variabel global", namun jarang digunakan dengan cara ini.
Tentang tidak terdefinisi dan nol
Dalam situasi berikut, nilai variabel tidak terdefinisi.
1. Jika suatu variabel ditentukan tetapi tidak diberi nilai, maka nilai variabel tersebut tidak terdefinisi.
2. Metode yang dipanggil tidak memiliki nilai kembalian, dan nilai yang dikembalikan tidak ditentukan.
3. Jika nilai atribut objek tidak ada, nilai kembaliannya tidak terdefinisi, seperti: document.ddd
Contoh1:
var xx;var yy=null;if(xx==yy){ alert('sama');}else{ alert('tidak sama');}
Hasil keluarannya sama karena saat melakukan penilaian if, browser akan menilai nilai xx dan yy karena keduanya tidak memiliki nilai tertentu, maka dianggap salah.
Jika penilaian if diganti dengan ===[tanda sama dengan semua], hasilnya tidak akan sama! Karena === artinya tipe data dan nilai xx dan yy harus sama!
Contoh2:
var xx=10var yy='10';if(xx==yy){ alert('equal');}else{ alert('tidak sama');}
Outputnya sama. Jika diubah menjadi ===, outputnya tidak sama.
Contoh3:
var n='10';switch(n){ kasus 10: peringatan('angka'); kasus '10': peringatan('string');
Rangkaian keluaran
Keputusan dalam peralihan harus mempertimbangkan jenisnya
Ringkasan: Penilaian dalam if adalah untuk menilai nilai, apa pun jenisnya.