Globaalit muuttujat ja funktioiden parametrit JavaScriptissä

Oletetaan, että meillä on funktio, joka ottaa parametrina luvun:

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

Oletetaan, että funktion ulkopuolella on muuttuja num:

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

let num = 1; // ulkoinen globaali muuttuja

Kutsutaan funktiota ja välitetään sille parametrina muuttuja num:

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

let num = 1;
func(num); // kutsutaan funktiota parametrilla, tulostaa 1

Tuloksena funktion sisällä on käytettävissä sekä muuttuja localNum (funktion parametri) että muuttuja num (ulkoinen muuttuja):

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

let num = 1;
func(num);

Muuttuja localNum on funktion paikallinen muuttuja eikä ole saatavilla ulkopuolelta:

javascriptfunction func(localNum) {
  
}

let num = 1;
func(num); // kutsutaan funktiota parametrilla
console.log(localNum); // aiheuttaa virheen

Koska muuttuja localNum on paikallinen, mikään sen muuttaminen ei muuta mitään ulkopuolella:

javascriptfunction func(localNum) {
  localNum = 2; // ei muuta mitään ulkopuolella
}

let num = 1;
func(num);

Jos taas muutetaan muuttujaa num (globaalia) sisällä, muutokset näkyvät myös ulkopuolella:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num); // tulostaa 2

Kuitenkin, jos funktion sisällä esitellään muuttuja num let:llä, luomme näin paikallisen muuttujan num, joka ei vaikuta ulkoiseen muuttujaan:

javascriptfunction func(localNum) {
  let num = 2; // esitellään let:llä
}

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

Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:

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

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

Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:

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

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

Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:

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

let num = 1;
func(num);
num = 2;
Задание 4

Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:

javascriptlet num = 1;

function func(localNum) {
  console.log(localNum);
}

num = 2;
func(num);
Задание 5

Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:

javascriptfunction func(localNum) {
  localNum = 2;
}

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

Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:

javascriptfunction func(localNum) {
  num = 2;
}

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

Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:

javascriptfunction func(localNum) {
  let num = 2;
}

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