Globaalsed muutujad ja funktsioonide parameetrid JavaScriptis

Oletame, et meil on funktsioon, mis võtab parameetrina numbri:

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

Oletame, et funktsioonist väljas on muutuja num:

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

let num = 1; // väline globaalne muutuja

Kutsume meie funktsiooni välja, andes talle parameetriks muutuja num:

javascriptfunction 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):

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction func(localNum) {
  let num = 2; // deklareerime läbi let
}

let num = 1;
func(num);
console.log(num); // väljastab 1 - midagi ei muutunud
Задание 1

Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:

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

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

Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:

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

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

Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:

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

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

Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:

javascriptlet num = 1;

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

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

Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:

javascriptfunction func(localNum) {
  localNum = 2;
}

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

Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:

javascriptfunction func(localNum) {
  num = 2;
}

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

Määrake, ilma koodi käivitamata, mis väljastatakse konsooli:

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

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