Parametre for ydre og indre funktioner i JavaScript

Lad os gøre det således, at både den ydre funktion og den indre tager imod parametre:

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

Lad os sende parameteren fra den ydre funktion til kaldet af den indre funktion:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // vil udskrive 1
  }
  
  func(num); //!! sender parameteren
}

test(1); // sender et tal som parameter

Det betyder, at i den indre funktion vil variablen num være tilgængelig som en ekstern variabel fra forælderfunktionen, og variablen localNum, som er en lokal variabel i den indre funktion.

Begge disse variabler vil have de samme værdier:

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

test(1);

Forskellen mellem dem vil være følgende: hvis man ændrer variablen num i den indre funktion, vil den også ændres i den ydre funktion:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // ændrer variablen num
  }
  
  func(num);   // sender parameteren
  console.log(num);  // vil udskrive 2
}

test(1); // sender et tal som parameter

Mens variablen localNum vil være lokal. Ændringer af den vil ikke føre til nogen ændringer i den ydre funktion. Og selve variablen localNum vil ikke være synlig udenfor den indre funktion:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // ændrer variablen num
  }
  
  func(num); // sender parameteren
}

test(1); // sender et tal som parameter
Задание 1

Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:

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

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

Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:

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

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

Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:

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

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

Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:

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

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

Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:

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

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

Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:

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

test(1);