Paramètres homonymes en JavaScript

Supposons maintenant que la fonction externe et la fonction interne aient des paramètres de même nom :

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

test(1);

Dans ce cas, la fonction interne aura une variable locale num. Sa modification dans la fonction interne n'affectera en rien la variable externe num :

javascriptfunction test(num) {
  function func(num) {
    num = 2; // change la variable locale num
  }
  
  func(num);
  console.log(num); // affichera 1 - rien n'a changé
}

test(1);

Il en résultera que la fonction interne ne pourra en aucune façon accéder à la variable externe num pour la modifier :

javascriptfunction test(num) {
  function func(num) {
    // ici, on ne peut pas accéder à la variable externe num
  }
  
  func(num);
}
test(1);
Задание 1

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

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

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

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

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

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

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

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

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

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

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

test(1);