Gleichnamige Parameter in JavaScript

Nehmen wir nun an, die äußere und die innere Funktion haben gleichnamige Parameter:

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

test(1);

In diesem Fall gibt es in der inneren Funktion eine lokale Variable num. Deren Änderung in der inneren Funktion beeinflusst die äußere Variable num in keiner Weise:

javascriptfunction test(num) {
  function func(num) {
    num = 2; // ändert die lokale Variable num
  }
  
  func(num);
  console.log(num); // gibt 1 aus - nichts hat sich geändert
}

test(1);

Das Ergebnis ist, dass die innere Funktion in keiner Weise auf die äußere Variable num zugreifen kann, um diese zu ändern:

javascriptfunction test(num) {
  function func(num) {
    // hier kann nicht auf die äußere Variable num zugegriffen werden
  }
  
  func(num);
}
test(1);
Задание 1

Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:

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

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

Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:

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

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

Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:

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

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

Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:

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

test(1);