Rozsah viditeľnosti vnorených funkcií v JavaScripte

Ak funkcia obsahuje v sebe inú funkciu - premenné vonkajšej funkcie sú viditeľné vo vnútornej:

javascriptfunction test() {
  let num = 1; // premenná vonkajšej funkcie
  
  function func() {
    console.log(num); // vypíše 1
  }
  
  func(); // voláme vnútornú funkciu
}

test(); // voláme vonkajšiu funkciu

Tiež vo vnútornej funkcii budú viditeľné premenné, definované mimo vonkajšej funkcie:

javascriptlet num = 1; // globálna premenná

function test() {
  function func() {
    console.log(num); // vypíše 1
  }
  
  func(); // voláme vnútornú funkciu
};

test(); // voláme vonkajšiu funkciu
Задание 1

Určite, bez spúšťania kódu, čo sa vypíše do konzoly:

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

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

Určite, bez spúšťania kódu, čo sa vypíše do konzoly:

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

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

Určite, bez spúšťania kódu, čo sa vypíše do konzoly:

javascriptfunction test() {
  let num = 1;
  
  function func() {
    console.log(num);
  }
  
  func();
}
Задание 4

Určite, bez spúšťania kódu, čo sa vypíše do konzoly:

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

test();