Samannimiset parametrit JavaScriptissä

Oletetaan nyt, että ulkoisella ja sisäisellä funktiolla on samannimiset parametrit:

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

test(1);

Tässä tapauksessa sisäisessä funktiossa on paikallinen muuttuja num. Sen muuttaminen sisäisessä funktiossa ei vaikuta millään tavalla ulkoiseen muuttujaan num:

javascriptfunction test(num) {
  function func(num) {
    num = 2; // muutetaan paikallista muuttujaa num
  }
  
  func(num);
  console.log(num); // tulostaa 1 - mikään ei muuttunut
}

test(1);

Käy niin, että sisäinen funktio ei pysty millään tavalla pääsemään käsiksi ulkoiseen muuttujaan num muuttaakseen sitä:

javascriptfunction test(num) {
  function func(num) {
    // tässä ei voi päästä käsiksi ulkoiseen muuttujaan num
  }
  
  func(num);
}
test(1);
Задание 1

Päätä, suorittamatta koodia, mitä tulostetaan konsoliin:

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

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

Päätä, suorittamatta koodia, mitä tulostetaan konsoliin:

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

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

Päätä, suorittamatta koodia, mitä tulostetaan konsoliin:

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

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

Päätä, suorittamatta koodia, mitä tulostetaan konsoliin:

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

test(1);