Parametrat me të njëjtin emër në JavaScript

Le t'i themi tani funksionit të jashtëm dhe të brendshëm të kenë parametra me të njëjtin emër:

javascriptfunction test(num) {
  function func(num) {
    console.log(num); // do të shfaqë 1
  }
  
  func(num);
};

test(1);

Në këtë rast, në funksionin e brendshëm do të ketë ndryshore lokale num. Ndryshimi i saj në funksionin e brendshëm nuk do të ndikojë në asnjë mënyrë në ndryshoren e jashtme num:

javascriptfunction test(num) {
  function func(num) {
    num = 2; // ndryshojmë ndryshoren lokale num
  }
  
  func(num);
  console.log(num); // do të shfaqë 1 - asgjë nuk ka ndryshuar
}

test(1);

Do të rezultojë se funksioni i brendshëm nuk do të jetë në gjendje të aksesojë ndryshoren e jashtme num për ta ndryshuar atë:

javascriptfunction test(num) {
  function func(num) {
    // këtu nuk është e mundur të merret akses në ndryshoren e jashtme num
  }
  
  func(num);
}
test(1);
Задание 1

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

javascriptfunction test(num) {
  function func(num) {
    console.log(num);
  }
  
  func(num);
}

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

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

javascriptfunction test(num) {
  function func(num) {
    num = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);
Задание 3

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

javascriptfunction test(num) {
  function func(num) {
    console.log(num);
  }
  
  num = 2;
  func(num);
}

test(1);
Задание 4

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

javascriptfunction test(num) {
  function func(num) {
    console.log(num);
  }
  
  func(num);
  num = 2;
}

test(1);