Portée des fonctions imbriquées en JavaScript

Si une fonction contient une autre fonction à l'intérieur - les variables de la fonction externe sont visibles dans la fonction interne :

javascriptfunction test() {
  let num = 1; // variable de la fonction externe
  
  function func() {
    console.log(num); // affichera 1
  }
  
  func(); // appelons la fonction interne
}

test(); // appelons la fonction externe

De plus, dans la fonction interne, les variables définies en dehors de la fonction externe seront visibles :

javascriptlet num = 1; // variable globale

function test() {
  function func() {
    console.log(num); // affichera 1
  }
  
  func(); // appelons la fonction interne
};

test(); // appelons la fonction externe
Задание 1

Déterminez, sans exécuter le code, ce qui sera affiché dans la console :

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

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

Déterminez, sans exécuter le code, ce qui sera affiché dans la console :

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

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

Déterminez, sans exécuter le code, ce qui sera affiché dans la console :

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

Déterminez, sans exécuter le code, ce qui sera affiché dans la console :

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

test();