Majina Yanayofanana ya Vigezo katika Kazi za JavaScript
Iwe nje ya kazi na ndani yake kuna kigezo
num. Katika hali hii, mabadiliko yoyote
kwa kigezo cha ndani num hayathiri
kigezo cha kitaifa num:
let num = 1; // kigezo cha kitaifa
function func() {
let num = 2; // kigezo cha ndani
console.log(num);
}
func(); // tunaita kazi, itaonyesha 2
console.log(num); // itaonyesha 1 - kigezo cha kitaifa hakijabadilika
Lakini, ikiwa tutasahau kutangaza kigezo cha ndani
num kupitia let, basi ndani ya kazi
haitaundwa kigezo cha ndani num,
badala yake kitabadilika kigezo cha kitaifa:
let num = 1;
function func() {
num = 2; // tulisahau kuandika let - tunabadilisha kigezo cha nje
console.log(num);
}
func(); // tunaita kazi, itaonyesha 2
console.log(num); // itaonyesha 2 - kigezo kimebadilika
Kunaweza kuwa na hali mbili hapa: ama kweli
tulitaka kubadilisha kigezo cha kitaifa (basi
yote iko sawa), au tulisahau let na kwa
bahati mbaya tukabadilisha kigezo cha kitaifa.
Kesi ya pili ni kosa gumu kugundua,
linaloongoza kwa tabia isiyotabirika ya hati.
Kwa hivyo kila wakati, unapoingiza kigezo kipya, tangaza
kwa let.
Amua, bila kukimbiza kificho, nini kitaonyeshwa katika koni:
let num = 1;
function func() {
num = 2;
}
func();
console.log(num);
Amua, bila kukimbiza kificho, nini kitaonyeshwa katika koni:
let num = 1;
function func() {
let num = 2;
}
func();
console.log(num);