Вобласць бачнасці укладзеных функцый у 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();