Escopo de funções aninhadas em JavaScript

Se uma função contém outra função internamente - as variáveis da função externa são visíveis na interna:

javascriptfunction test() {
  let num = 1; // variável da função externa
  
  function func() {
    console.log(num); // exibirá 1
  }
  
  func(); // chamamos a função interna
}

test(); // chamamos a função externa

Além disso, na função interna serão visíveis as variáveis definidas fora da função externa:

javascriptlet num = 1; // variável global

function test() {
  function func() {
    console.log(num); // exibirá 1
  }
  
  func(); // chamamos a função interna
};

test(); // chamamos a função externa
Задание 1

Determine, sem executar o código, o que será exibido no console:

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

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

Determine, sem executar o código, o que será exibido no console:

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

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

Determine, sem executar o código, o que será exibido no console:

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

Determine, sem executar o código, o que será exibido no console:

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

test();