JavaScript-də xarici və daxili funksiyaların parametrləri

Gəlin elə edək ki, həm xarici funksiya həm də daxili parametrlər qəbul etsin:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
}

Xarici funksiyanın parametrini daxili funksiyanın çağırışına ötürək:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // 1 çap edəcək
  }
  
  func(num); //!! parametri ötürürük
}

test(1); // parametr kimi ədəd ötürürük

Belə çıxır ki, daxili funksiyada num dəyişəni valideyn funksiyadan gələn xarici dəyişən kimi və localNum dəyişəni isə daxili funksiyanın lokal dəyişəni kimi əlçatan olacaq.

Bu dəyişənlərin hər ikisi eyni qiymətə malik olacaq:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num); // 1 çap edəcək
    console.log(localNum); // 1 çap edəcək
  }
  
  func(num);
}

test(1);

Onların arasındakı fərq belə olacaq: əgər daxili funksiyada num dəyişəni dəyişdirilsə - o, xarici funksiyada da dəyişəcək:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // num dəyişənini dəyişirik
  }
  
  func(num);   // parametri ötürürük
  console.log(num);  // 2 çap edəcək
}

test(1); // parametr kimi ədəd ötürürük

localNum dəyişəni isə lokal olacaq. Onun dəyişməsi heç bir dəyişikliyə səbəb olmayacaq. Və localNum dəyişəninin özü də daxili funksiyanın xaricində görünməyəcək:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // num dəyişənini dəyişirik
  }
  
  func(num); // parametri ötürürük
}

test(1); // parametr kimi ədəd ötürürük
Задание 1

Kodu işə salmadan müəyyən edin ki, konsola nə çap olunacaq:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
  
  func(num);
}

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

Kodu işə salmadan müəyyən edin ki, konsola nə çap olunacaq:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
  
  func(num + 1);
}

test(1);
Задание 3

Kodu işə salmadan müəyyən edin ki, konsola nə çap olunacaq:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num);
  }
  
  func(num + 1);
}

test(1);
Задание 4

Kodu işə salmadan müəyyən edin ki, konsola nə çap olunacaq:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);
Задание 5

Kodu işə salmadan müəyyən edin ki, konsola nə çap olunacaq:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2;
  }
  
  func(num);
  console.log(localNum);
}

test(1);
Задание 6

Kodu işə salmadan müəyyən edin ki, konsola nə çap olunacaq:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);