Parametre vonkajšej a vnútornej funkcie v JavaScripte

Urobme to tak, aby aj vonkajšia funkcia aj vnútorná prijímali parametre:

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

Odovzdajme parameter vonkajšej funkcie do volania vnútornej funkcie:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // vypíše 1
  }
  
  func(num); //!! odovzdávame parameter
}

test(1); // odovzdávame parameter číslo

Vychádza to tak, že vo vnútornej funkcii bude dostupná premenná num ako vonkajšia premenná z nadradenej funkcie a premenná localNum, ktorá je lokálnou premennou vnútornej funkcie.

Obe tieto premenné budú mať rovnaké hodnoty:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num); // vypíše 1
    console.log(localNum); // vypíše 1
  }
  
  func(num);
}

test(1);

Rozdiel medzi nimi bude v nasledovnom: ak vo vnútornej funkcii zmeníme premennú num - zmení sa aj vo vonkajšej funkcii:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // meníme premennú num
  }
  
  func(num);   // odovzdávame parameter
  console.log(num);  // vypíše 2
}

test(1); // odovzdávame parameter číslo

A premenná localNum bude lokálna. Jej zmeny nebudú viesť k žiadnym zmenám vo vonkajšej funkcii. A ani samotná premenná localNum nebude viditeľná z vonku vnútornej funkcie:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // meníme premennú num
  }
  
  func(num); // odovzdávame parameter
}

test(1); // odovzdávame parameter číslo
Задание 1

Určite, bez spustenia kódu, čo sa vypíše do konzoly:

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

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

Určite, bez spustenia kódu, čo sa vypíše do konzoly:

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

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

Určite, bez spustenia kódu, čo sa vypíše do konzoly:

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

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

Určite, bez spustenia kódu, čo sa vypíše do konzoly:

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

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

Určite, bez spustenia kódu, čo sa vypíše do konzoly:

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

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

Určite, bez spustenia kódu, čo sa vypíše do konzoly:

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

test(1);