Domeniul de vizibilitate al funcțiilor imbricate în JavaScript

Dacă o funcție conține în interior o altă funcție - variabilele funcției exterioare sunt vizibile în cea interioară:

javascriptfunction test() {
  let num = 1; // variabila funcției exterioare
  
  function func() {
    console.log(num); // va afișa 1
  }
  
  func(); // apelăm funcția interioară
}

test(); // apelăm funcția exterioară

De asemenea, în funcția interioară vor fi vizibile variabilele definite în afara funcției exterioare:

javascriptlet num = 1; // variabilă globală

function test() {
  function func() {
    console.log(num); // va afișa 1
  }
  
  func(); // apelăm funcția interioară
};

test(); // apelăm funcția exterioară
Задание 1

Stabiliți, fără a rula codul, ce va fi afișat în consolă:

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

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

Stabiliți, fără a rula codul, ce va fi afișat în consolă:

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

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

Stabiliți, fără a rula codul, ce va fi afișat în consolă:

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

Stabiliți, fără a rula codul, ce va fi afișat în consolă:

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

test();