Nimekokkulangevus parameetritega JavaScriptis
Funktsiooni parameetrid on selle sees olevad kohalikud muutujad. Nimetame funktsiooni parameetri sama nimega nagu välise globaalse muutuja:
function func(num) {
console.log(num);
}
let num = 1;
func(num);
Sel juhul saab nii, et
funktsiooni väljas on muutuja num
ja funktsiooni sees on muutuja num.
Kuid need on erinevad muutujad: muutuja muutmine
funktsiooni sees toob kaasa
funktsiooni kohaliku muutuja muutumise.
Väline muutuja funktsiooni sees
on kättesaamatu ja seda ei saa
mingil viisil muuta. Kontrollime:
function func(num) {
num = 2; // muudame kohalikku muutujat
}
let num = 1;
func(num);
console.log(num); // väljastab 1 - midagi ei muutunud
Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:
function func(num) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:
function func() {
num = 2;
}
let num = 1;
func();
console.log(num);
Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:
function func() {
let num = 2;
}
let num = 1;
func();
console.log(num);