JavaScriptда ташки ва ички функциялар параметрлари

Ташки функция ҳам, ички функция ҳам параметрларни қабул қилиши учун қилайлик:

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

Ташки функция параметрини ички функция чақиришига узатайлик:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // 1 ни кўрсатади
  }
  
  func(num); //!! параметрни узатамиз
}

test(1); // параметр сифатида сон узатамиз

Мана, ички функцияда num ўзгарувчиси ота-она функциянинг ташки ўзгарувчиси сифатида ва localNum ўзгарувчиси ички функциянинг локал ўзгарувчиси сифатида мавжуд бўлади.

Бу иккала ўзгарувчи ҳам бир хил қийматга эга бўлади:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num); // 1 ни кўрсатади
    console.log(localNum); // 1 ни кўрсатади
  }
  
  func(num);
}

test(1);

Уларнинг фарқи шундаки: агар ички функцияда num ўзгарувчиси ўзгартирилса - у ташки функцияда ҳам ўзгаради:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // num ўзгарувчисини ўзгартирамиз
  }
  
  func(num);   // параметрни узатамиз
  console.log(num);  // 2 ни кўрсатади
}

test(1); // параметр сифатида сон узатамиз

localNum ўзгарувчиси эса локал бўлади. Унинг ўзгаришлари ташки функцияда ҳеч қандай ўзгаришларга олиб келмайди. Ва localNum ўзгарувчисининг ўзи ҳам ички функциядан ташқарида кўринмайди:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // num ўзгарувчисини ўзгартирамиз
  }
  
  func(num); // параметрни узатамиз
}

test(1); // параметр сифатида сон узатамиз
Задание 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

test(1);