Paramètres des fonctions externes et internes en JavaScript

Faisons en sorte que la fonction externe et la fonction interne acceptent toutes deux des paramètres :

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
}

Passons le paramètre de la fonction externe à l'appel de la fonction interne :

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // affichera 1
  }
  
  func(num); //!! nous passons le paramètre
}

test(1); // passons un nombre en paramètre

Il en résulte que dans la fonction interne, la variable num sera accessible en tant que variable externe de la fonction parent et la variable localNum, qui est une variable locale de la fonction interne.

Ces deux variables auront les mêmes valeurs :

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num); // affichera 1
    console.log(localNum); // affichera 1
  }
  
  func(num);
}

test(1);

La différence entre elles sera la suivante : si dans la fonction interne on modifie la variable num - elle changera aussi dans la fonction externe :

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // modifions la variable num
  }
  
  func(num);   // passons le paramètre
  console.log(num);  // affichera 2
}

test(1); // passons un nombre en paramètre

Et la variable localNum sera locale. Ses modifications n'entraîneront aucun changement dans la fonction externe. Et la variable localNum elle-même ne sera pas visible en dehors de la fonction interne :

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // modifions la variable num
  }
  
  func(num); // passons le paramètre
}

test(1); // passons un nombre en paramètre
Задание 1

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

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
  
  func(num);
}

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

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

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
  
  func(num + 1);
}

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

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

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num);
  }
  
  func(num + 1);
}

test(1);
Задание 4

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

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

test(1);
Задание 5

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

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

test(1);
Задание 6

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

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

test(1);