Opseg vidljivosti ugnježdenih funkcija u JavaScript-u

Ako funkcija sadrži unutar sebe drugu funkciju - promenljive spoljašnje funkcije su vidljive u unutrašnjoj:

javascriptfunction test() {
  let num = 1; // promenljiva spoljašnje funkcije
  
  function func() {
    console.log(num); // ispisaće 1
  }
  
  func(); // pozivamo unutrašnju funkciju
}

test(); // pozivamo spoljašnju funkciju

Takođe, u unutrašnjoj funkciji će biti vidljive promenljive koje su definisane izvan spoljašnje funkcije:

javascriptlet num = 1; // globalna promenljiva

function test() {
  function func() {
    console.log(num); // ispisaće 1
  }
  
  func(); // pozivamo unutrašnju funkciju
};

test(); // pozivamo spoljašnju funkciju
Задание 1

Odredite, bez pokretanja koda, šta će biti ispisano u konzoli:

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

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

Odredite, bez pokretanja koda, šta će biti ispisano u konzoli:

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

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

Odredite, bez pokretanja koda, šta će biti ispisano u konzoli:

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

Odredite, bez pokretanja koda, šta će biti ispisano u konzoli:

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

test();