Parameters van externe en interne functies in JavaScript

Laten we ervoor zorgen dat zowel de externe functie als de interne parameters accepteren:

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

Laten we de parameter van de externe functie doorgeven aan de aanroep van de interne functie:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // geeft 1 weer
  }
  
  func(num); //!! geven parameter door
}

test(1); // geven een getal als parameter door

Het resultaat is dat in de interne functie de variabele num beschikbaar zal zijn als een externe variabele van de bovenliggende functie en de variabele localNum, die een lokale variabele is van de interne functie.

Beide variabelen zullen dezelfde waarden hebben:

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

test(1);

Het verschil tussen hen zal als volgt zijn: als in de interne functie de variabele num wordt gewijzigd - zal deze ook veranderen in de externe functie:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // veranderen de variabele num
  }
  
  func(num);   // geven parameter door
  console.log(num);  // geeft 2 weer
}

test(1); // geven een getal als parameter door

En de variabele localNum zal lokaal zijn. Veranderingen erin zullen niet leiden tot enige veranderingen in de externe functie. En de variabele localNum zelf zal niet zichtbaar zijn buiten de interne functie:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // veranderen de variabele num
  }
  
  func(num); // geven parameter door
}

test(1); // geven een getal als parameter door
Задание 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

test(1);