Globaalsed muutujad ja funktsioonide parameetrid JavaScriptis
Oletame, et meil on funktsioon, mis võtab parameetrina numbri:
function func(localNum) {
console.log(localNum);
}
Oletame, et funktsioonist väljas on muutuja num:
function func(localNum) {
console.log(localNum);
}
let num = 1; // väline globaalne muutuja
Kutsume meie funktsiooni välja, andes talle
parameetriks muutuja num:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num); // kutsume funktsiooni parameetriga, väljastab 1
See tähendab, et funktsiooni sees on ligipääsetav
nii muutuja localNum (funktsiooni
parameeter) kui ka muutuja num (kui
väline muutuja):
function func(localNum) {
console.log(num); // väljastab 1
console.log(localNum); // väljastab 1
}
let num = 1;
func(num);
Muutuja localNum ise on funktsiooni lokaalne
muutuja ja pole väljast ligipääsetav:
function func(localNum) {
}
let num = 1;
func(num); // kutsume funktsiooni parameetriga
console.log(localNum); // annab vea
Kuna muutuja localNum on lokaalne,
siis ükski sellega tehtud muudatus ei muuda
midagi väljaspool:
function func(localNum) {
localNum = 2; // ei muuda midagi väljaspool
}
let num = 1;
func(num);
Kui aga muuta sees muutujat num
(globaalset), siis muutused ilmuvad ka väljaspool:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num); // väljastab 2
Kui aga funktsiooni sees deklareerida
muutuja num läbi let, siis
loome me sellisel viisil lokaalse muutuja
num, mis ei mõjuta välist
muutujat:
function func(localNum) {
let num = 2; // deklareerime läbi let
}
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(localNum) {
console.log(localNum);
}
func(1);
Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);