Oblast viditelnosti vnořených funkcí v JavaScriptu

Pokud funkce obsahuje uvnitř jinou funkci - proměnné vnější funkce jsou viditelné ve vnitřní:

javascriptfunction test() {
  let num = 1; // proměnná vnější funkce
  
  function func() {
    console.log(num); // vypíše 1
  }
  
  func(); // voláme vnitřní funkci
}

test(); // voláme vnější funkci

Také ve vnitřní funkci budou viditelné proměnné, definované mimo vnější funkci:

javascriptlet num = 1; // globální proměnná

function test() {
  function func() {
    console.log(num); // vypíše 1
  }
  
  func(); // voláme vnitřní funkci
};

test(); // voláme vnější funkci
Задание 1

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

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

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

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

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

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

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

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

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

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

test();