Parametre s rovnakým názvom v JavaScripte

Nech teraz vonkajšia a vnútorná funkcia majú parametre s rovnakým názvom:

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

test(1);

V tomto prípade bude vo vnútornej funkcii lokálna premenná num. Jej zmena vo vnútornej funkcii nebude nijako ovplyvňovať vonkajšiu premennú num:

javascriptfunction test(num) {
  function func(num) {
    num = 2; // meníme lokálnu premennú num
  }
  
  func(num);
  console.log(num); // vypíše 1 - nič sa nezmenilo
}

test(1);

Výsledkom bude, že vnútorná funkcia sa nebude môcť nijako dostať k vonkajšej premennej num na to, aby ju zmenila:

javascriptfunction test(num) {
  function func(num) {
    // tu nie je možné získať prístup k vonkajšej premennej num
  }
  
  func(num);
}
test(1);
Задание 1

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

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

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

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

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

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

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

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

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

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

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

test(1);