Pembolehubah Global dan Parameter Fungsi dalam JavaScript

Katakan kita mempunyai fungsi yang menerima nombor sebagai parameter:

javascriptfunction func(localNum) {
  console.log(localNum);
}

Katakan di luar fungsi terdapat pembolehubah num:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1; // pembolehubah global luaran

Mari kita panggil fungsi kita, dengan menghantar pembolehubah num sebagai parameter:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1;
func(num); // memanggil fungsi dengan parameter, akan output 1

Hasilnya, di dalam fungsi akan dapat diakses kedua-dua pembolehubah localNum (parameter fungsi) dan pembolehubah num (sebagai pembolehubah luaran):

javascriptfunction func(localNum) {
  console.log(num); // akan output 1
  console.log(localNum); // akan output 1
}

let num = 1;
func(num);

Pembolehubah localNum itu sendiri akan menjadi pembolehubah tempatan fungsi dan tidak akan dapat diakses dari luar:

javascriptfunction func(localNum) {
  
}

let num = 1;
func(num); // memanggil fungsi dengan parameter
console.log(localNum); // akan memberikan ralat

Oleh kerana pembolehubah localNum adalah tempatan, maka sebarang perubahan padanya tidak akan mengubah apa-apa di luar:

javascriptfunction func(localNum) {
  localNum = 2; // tidak mengubah apa-apa di luar
}

let num = 1;
func(num);

Jika kita menukar pembolehubah num (global) di dalam, maka perubahan akan muncul di luar juga:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num); // akan output 2

Walau bagaimanapun, jika kita mengisytiharkan pembolehubah num di dalam fungsi melalui let, maka kita akan mencipta pembolehubah tempatan num sedemikian, yang tidak mempengaruhi pembolehubah luaran langsung:

javascriptfunction func(localNum) {
  let num = 2; // isytihar melalui let
}

let num = 1;
func(num);
console.log(num); // akan output 1 - tiada perubahan
Задание 1

Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:

javascriptfunction func(localNum) {
  console.log(localNum);
}

func(1);
Задание 2

Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1;
func(num);
Задание 3

Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1;
func(num);
num = 2;
Задание 4

Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:

javascriptlet num = 1;

function func(localNum) {
  console.log(localNum);
}

num = 2;
func(num);
Задание 5

Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:

javascriptfunction func(localNum) {
  localNum = 2;
}

let num = 1;
func(num);
console.log(num);
Задание 6

Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num);
Задание 7

Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:

javascriptfunction func(localNum) {
  let num = 2;
}

let num = 1;
func(num);
console.log(num);