Област видљивости угнежђених функција у JavaScript

Ако функција садржи унутар себе другу функцију - променљиве спољашње функције су видљиве у унутрашњој:

javascriptfunction test() {
  let num = 1; // променљива спољашње функције
  
  function func() {
    console.log(num); // исписаће 1
  }
  
  func(); // позивамо унутрашњу функцију
}

test(); // позивамо спољашњу функцију

Такође, у унутрашњој функцији ће бити видљиве променљиве дефинисане изван спољашње функције:

javascriptlet num = 1; // глобална променљива

function test() {
  function func() {
    console.log(num); // исписаће 1
  }
  
  func(); // позивамо унутрашњу функцију
};

test(); // позивамо спољашњу функцију
Задание 1

Одредите, не покрећући код, шта ће бити исписано у конзолу:

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

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

Одредите, не покрећући код, шта ће бити исписано у конзолу:

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

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

Одредите, не покрећући код, шта ће бити исписано у конзолу:

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

Одредите, не покрећући код, шта ће бити исписано у конзолу:

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

test();