JavaScriptда глобал ўзгарувчилар ва функция параметрлари

Фарз қилайлик, бизда параметр сифатида сон қабул қиладиган функция бор:

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

Фарз қилайлик, функциядан ташқарида num ўзгарувчиси бор:

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

let num = 1; // ташқи глобал ўзгарувчи

Келинг, ўз функциямизни чақириб, унга num ўзгарувчисини параметр сифатида узатайлик:

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

let num = 1;
func(num); // функцияни параметр билан чақирамиз, 1 чиқади

Натижада функция ичида ҳам localNum ўзгарувчиси (функция параметри), ҳам num ўзгарувчиси (ташқи ўзгарувчи сифатида) дастурга қулай бўлади:

javascriptfunction func(localNum) {
  console.log(num); // 1 чиқади
  console.log(localNum); // 1 чиқади
}

let num = 1;
func(num);

localNum ўзгарувчисининг ўзи функциянинг локал ўзгарувчиси бўлиб, ташқаридан дастурга қулай бўлмайди:

javascriptfunction func(localNum) {
  
}

let num = 1;
func(num); // функцияни параметр билан чақирамиз
console.log(localNum); // хато беради

localNum ўзгарувчиси локал бўлгани учун, унга қилинадиган ҳар қандай ўзгартиришлар ташқаридаги нарсаларга таъсир қилмайди:

javascriptfunction func(localNum) {
  localNum = 2; // ташқаридаги нарсаларга ўзгартирмайди
}

let num = 1;
func(num);

Агар ичида num ўзгарувчисини (глобални) ўзгартирсак, ўзгартиришлар ташқарида ҳам кўринади:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num); // 2 чиқади

Бирок, агар функция ичида num ўзгарувчисини let орқали эълон қилсак, биз ташқи ўзгарувчига таъсир қилмайдиган локал num ўзгарувчисини яратамиз:

javascriptfunction func(localNum) {
  let num = 2; // let орқали эълон қиламиз
}

let num = 1;
func(num);
console.log(num); // 1 чиқади - ҳеч нарса ўзгармади
Задание 1

Кодни ишлатмасдан, консолда нима чиқишини аниқланг:

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

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

Кодни ишлатмасдан, консолда нима чиқишини аниқланг:

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

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

Кодни ишлатмасдан, консолда нима чиқишини аниқланг:

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

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

Кодни ишлатмасдан, консолда нима чиқишини аниқланг:

javascriptlet num = 1;

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

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

Кодни ишлатмасдан, консолда нима чиқишини аниқланг:

javascriptfunction func(localNum) {
  localNum = 2;
}

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

Кодни ишлатмасдан, консолда нима чиқишини аниқланг:

javascriptfunction func(localNum) {
  num = 2;
}

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

Кодни ишлатмасдан, консолда нима чиқишини аниқланг:

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

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