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:

javascriptlet 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:

javascriptlet 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.

Задание 1

Amua, bila kukimbiza kificho, nini kitaonyeshwa katika koni:

javascriptlet num = 1;

function func() {
  num = 2;
}
func();

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

Amua, bila kukimbiza kificho, nini kitaonyeshwa katika koni:

javascriptlet num = 1;

function func() {
  let num = 2;
}
func();

console.log(num);