Lingkup Variabel dalam if-else di JavaScript
Untuk mempermudah, mari kita asumsikan ada kondisi yang selalu terpenuhi:
if (true) {
}
Mari kita perhatikan kode berikut:
if (true) {
let res = '!';
}
console.log(res);
Seperti yang Anda lihat, nilai '!'
seharusnya dimasukkan ke dalam variabel res.
Namun,
jika kode ini dijalankan, konsol akan menampilkan
error!
Masalahnya adalah, variabel yang dideklarasikan di dalam kurung kurawal, hanya terlihat di dalam kurung kurawal tersebut, dan tidak terlihat di luarnya. Dalam istilah ilmiah, ini membahas tentang lingkup variabel.
Dapat dikatakan bahwa lingkup variabel yang dideklarasikan di dalam kurung kurawal, hanya terbatas pada kurung kurawal tersebut. Namun, jika variabel dideklarasikan di luar kurung kurawal, maka variabel tersebut terlihat baik di dalam maupun di luarnya:
let res; // variabel dideklarasikan di luar
if (true) {
res = '!';
}
console.log(res); // akan menampilkan '!'
Dalam contoh berikut, nilai 1 atau
nilai 2 dimasukkan ke dalam variabel res
tergantung pada kondisinya:
let num = 5;
if (num >= 0) {
let res = 1;
} else {
let res = 2;
}
console.log(res);
Namun, jika kode ini dijalankan, konsol akan menampilkan error. Seperti yang sekarang Anda pahami, masalahnya terletak pada visibilitas variabel. Untuk menyelesaikan masalahnya, mari deklarasikan variabel di luar kondisi:
let test = true;
let res; // deklarasikan variabel di luar kondisi
if (test) {
res = 1;
} else {
res = 2;
}
console.log(res); // akan menampilkan 1
Penulis kode di bawah ini ingin melakukan
pengecekan usia untuk mencapai 18
tahun. Namun, kodenya tidak bekerja. Perbaiki
kesalahan penulis kode. Berikut kode bermasalahnya:
let age = 17;
if (age >= 18) {
let adult = true;
} else {
let adult = false;
}
console.log(adult);