Globaalit muuttujat ja funktioiden parametrit JavaScriptissä
Oletetaan, että meillä on funktio, joka ottaa parametrina luvun:
function func(localNum) {
console.log(localNum);
}
Oletetaan, että funktion ulkopuolella on muuttuja num:
function func(localNum) {
console.log(localNum);
}
let num = 1; // ulkoinen globaali muuttuja
Kutsutaan funktiota ja välitetään sille
parametrina muuttuja num:
function 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):
function 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:
function 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:
function 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:
function 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:
function func(localNum) {
let num = 2; // esitellään let:llä
}
let num = 1;
func(num);
console.log(num); // tulostaa 1 - mikään ei muuttunut
Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:
function func(localNum) {
console.log(localNum);
}
func(1);
Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Päätä, mitä konsoliin tulostuu, käyttämättä koodin suorittamista:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);