Nuansa Lingkup Variabel dalam Konstruksi if-else di JavaScript

Lingkup variabel memiliki beberapa nuansa. Mari kita lihat melalui contoh. Mari kita deklarasikan variabel res di luar kondisi kita dengan satu nilai, dan di dalam kondisi ubah nilai tersebut menjadi nilai lain:

javascriptlet res = 1;

if (true) {
  res = 2;
}

console.log(res); // akan menampilkan 2

Seperti yang Anda lihat, variabel res berubah di dalam kondisi. Namun, semuanya akan berubah, jika di dalam kondisi juga dideklarasikan variabel res melalui let:

javascriptlet res = 1;

if (true) {
  let res = 2; // deklarasikan variabel melalui let
}

console.log(res); // akan menampilkan 1, bukan 2!

Di sini semuanya terjadi karena deklarasi variabel melalui let di dalam kondisi menciptakan variabel lokal res.

Artinya di dalam kondisi terdapat satu variabel res, dan di luar kondisi - variabel lainnya. Hal ini dapat dipastikan dengan menampilkan nilai variabel ke konsol di dalam kondisi:

javascriptlet res = 1;

if (true) {
  let res = 2;
  console.log(res); // akan menampilkan 2
}

console.log(res); // akan menampilkan 1
Задание 1

Penulis kode di bawah ini ingin melakukan pengecekan usia untuk mencapai 18 tahun. Namun, kode tersebut pada nilai usia berapa pun menampilkan nilai undefined ke konsol. Perbaiki kesalahan penulis kode. Berikut adalah kode bermasalahnya:

javascriptlet age = 17;
let adult;

if (age >= 18) {
  let adult = true;
} else {
  let adult = false;
}

console.log(adult);
Задание 2

Penulis kode di bawah ini ingin melakukan pengecekan usia untuk mencapai 18 tahun. Setelah pemeriksaan kode, ternyata jika usia sama dengan atau lebih dari 18 tahun, maka variabel adult akan diisi dengan true, sebagaimana seharusnya, namun, jika usia kurang dari 18, maka variabel adult memiliki nilai undefined. Perbaiki kesalahan penulis kode.

Berikut adalah kode bermasalahnya:

javascriptlet age = 17;
let adult;

if (age >= 18) {
  adult = true;
} else {
  let adult = false;
}

console.log(adult);
Задание 3

Penulis kode di bawah ini ingin melakukan pengecekan usia. Namun, kode tersebut pada nilai usia berapa pun menampilkan nilai undefined ke konsol. Perbaiki kesalahan penulis kode.

Berikut adalah kode bermasalahnya:

javascriptlet age = 17;
let res;

if (age >= 18) {
  if (age <= 23) {
    let res = 'dari 18 hingga 23';
  } else {
    let res = 'lebih dari 23';
  }
} else {
  let res = 'kurang dari 18';
}

console.log(res);
Задание 4

Penulis kode di bawah ini ingin melakukan pengecekan usia. Namun, kode tersebut pada nilai usia lebih besar dari 18 tahun menampilkan nilai undefined ke konsol. Perbaiki kesalahan penulis kode.

Berikut adalah kode bermasalahnya:

javascriptlet age = 19;
let res;

if (age >= 18) {
  let res;
  
  if (age <= 23) {
    res = 'dari 18 hingga 23';
  } else {
    res = 'lebih dari 23';
  }
} else {
  res = 'kurang dari 18';
}

console.log(res);