Scope van geneste functies in JavaScript

Als een functie binnenin een andere functie bevat - zijn de variabelen van de buitenste functie zichtbaar in de binnenste:

javascriptfunction test() {
  let num = 1; // variabele van de buitenste functie
  
  function func() {
    console.log(num); // geeft 1 weer
  }
  
  func(); // roepen de binnenste functie aan
}

test(); // roepen de buitenste functie aan

Ook in de binnenste functie zullen variabelen zichtbaar zijn, die buiten de buitenste functie zijn gedefinieerd:

javascriptlet num = 1; // globale variabele

function test() {
  function func() {
    console.log(num); // geeft 1 weer
  }
  
  func(); // roepen de binnenste functie aan
};

test(); // roepen de buitenste functie aan
Задание 1

Bepaal, zonder de code uit te voeren, wat wordt weergegeven in de console:

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

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

Bepaal, zonder de code uit te voeren, wat wordt weergegeven in de console:

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

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

Bepaal, zonder de code uit te voeren, wat wordt weergegeven in de console:

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

Bepaal, zonder de code uit te voeren, wat wordt weergegeven in de console:

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

test();