Nimen yhteentörmäys parametrien kanssa JavaScriptissä

Funktion parametrit ovat sen sisäisiä paikallisia muuttujia. Kutsukaamme funktion parametria samalla nimellä kuin ulkoista globaalia muuttujaa:

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

let num = 1;
func(num);

Tässä tapauksessa saamme tilanteen, jossa funktion ulkopuolella on muuttuja num ja funktion sisällä on muuttuja num. Mutta nämä ovat eri muuttujat: muuttujan muuttaminen funktion sisällä johtaa funktion paikallisen muuttujan muuttamiseen. Ja ulkoinen muuttuja funktion sisällä on saavuttamaton eikä sitä voida muuttaa millään tavalla. Tarkistetaan:

javascriptfunction func(num) {
  num = 2; // muutetaan paikallista muuttujaa
}

let num = 1;
func(num);
console.log(num); // tulostaa 1 - mikään ei muuttunut
Задание 1

Päättele, without suorittamatta koodia, mitä tulostetaan konsoliin:

javascriptfunction func(num) {
  num = 2;
}

let num = 1;
func(num);
console.log(num);
Задание 2

Päättele, without suorittamatta koodia, mitä tulostetaan konsoliin:

javascriptfunction func() {
  num = 2;
}

let num = 1;
func();
console.log(num);
Задание 3

Päättele, without suorittamatta koodia, mitä tulostetaan konsoliin:

javascriptfunction func() {
  let num = 2;
}

let num = 1;
func();
console.log(num);