Pembolehubah Global dan Parameter Fungsi dalam JavaScript
Katakan kita mempunyai fungsi yang menerima nombor sebagai parameter:
function func(localNum) {
console.log(localNum);
}
Katakan di luar fungsi terdapat pembolehubah num:
function func(localNum) {
console.log(localNum);
}
let num = 1; // pembolehubah global luaran
Mari kita panggil fungsi kita, dengan menghantar
pembolehubah num sebagai parameter:
function 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):
function 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:
function 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:
function 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:
function 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:
function func(localNum) {
let num = 2; // isytihar melalui let
}
let num = 1;
func(num);
console.log(num); // akan output 1 - tiada perubahan
Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:
function func(localNum) {
console.log(localNum);
}
func(1);
Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Tentukan, tanpa menjalankan kod, apa yang akan dioutputkan ke konsol:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);