Shoda názvů s parametry v JavaScriptu

Parametry funkce jsou lokální proměnné uvnitř ní. Pojmenujme parametr funkce stejným názvem jako vnější globální proměnnou:

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

let num = 1;
func(num);

V tomto případě dostaneme to, že mimo funkci bude proměnná num a uvnitř funkce bude proměnná num. Ale půjde o různé proměnné: změna proměnné uvnitř funkce povede ke změně lokální proměnné funkce. A vnější proměnná uvnitř funkce bude nedostupná a nebude možné ji změnit žádným způsobem. Ověřme si to:

javascriptfunction func(num) {
  num = 2; // měníme lokální proměnnou
}

let num = 1;
func(num);
console.log(num); // vypíše 1 - nic se nezměnilo
Задание 1

Určete, bez spuštění kódu, co se vypíše do konzole:

javascriptfunction func(num) {
  num = 2;
}

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

Určete, bez spuštění kódu, co se vypíše do konzole:

javascriptfunction func() {
  num = 2;
}

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

Určete, bez spuštění kódu, co se vypíše do konzole:

javascriptfunction func() {
  let num = 2;
}

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