Parametrar för yttre och inre funktioner i JavaScript

Låt oss se till att både den yttre funktionen och den inre tar parametrar:

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

Låt oss skicka parametern från den yttre funktionen till anropet av den inre funktionen:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // skriver ut 1
  }
  
  func(num); //!! skickar parametern
}

test(1); // skickar ett tal som parameter

Det blir så att variabeln num kommer att vara tillgänglig i den inre funktionen som en yttre variabel från föräldrafunktionen, och variabeln localNum, som är en lokal variabel i den inre funktionen.

Båda dessa variabler kommer att ha samma värden:

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

test(1);

Skillnaden mellan dem blir följande: om variabeln num ändras i den inre funktionen - kommer den att ändras även i den yttre funktionen:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // ändrar variabeln num
  }
  
  func(num);   // skickar parametern
  console.log(num);  // skriver ut 2
}

test(1); // skickar ett tal som parameter

Medan variabeln localNum kommer att vara lokal. Dess ändringar kommer inte att leda till några ändringar i den yttre funktionen. Och själva variabeln localNum kommer inte att vara synbar utanför den inre funktionen:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // ändrar variabeln num
  }
  
  func(num); // skickar parametern
}

test(1); // skickar ett tal som parameter
Задание 1

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

test(1);