Ֆունկցիաների բնադրման շրջանակը JavaScript-ում

Եթե ֆունկցիան ներսում պարունակում է մեկ այլ ֆունկցիա - արտաքին ֆունկցիայի փոփոխականները տեսանելի են ներքինում.

javascriptfunction test() {
  let num = 1; // արտաքին ֆունկցիայի փոփոխական
  
  function func() {
    console.log(num); // կարտածի 1
  }
  
  func(); // կանչում ենք ներքին ֆունկցիան
}

test(); // կանչում ենք արտաքին ֆունկցիան

Նաև ներքին ֆունկցիայում տեսանելի կլինեն այն փոփոխականները, որոնք սահմանված են արտաքին ֆունկցիայից դուրս.

javascriptlet num = 1; // գլոբալ փոփոխական

function test() {
  function func() {
    console.log(num); // կարտածի 1
  }
  
  func(); // կանչում ենք ներքին ֆունկցիան
};

test(); // կանչում ենք արտաքին ֆունկցիան
Задание 1

Որոշեք՝ առանց կոդը գործարկելու, թե ինչ կարտածվի կոնսոլում.

javascriptfunction test() {
  let num = 1;
  
  function func() {
    console.log(num);
  }
  
  func();
}

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

Որոշեք՝ առանց կոդը գործարկելու, թե ինչ կարտածվի կոնսոլում.

javascriptfunction test() {
  let num = 1;
  
  function func() {
    console.log(num);
  }
}

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

Որոշեք՝ առանց կոդը գործարկելու, թե ինչ կարտածվի կոնսոլում.

javascriptfunction test() {
  let num = 1;
  
  function func() {
    console.log(num);
  }
  
  func();
}
Задание 4

Որոշեք՝ առանց կոդը գործարկելու, թե ինչ կարտածվի կոնսոլում.

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

test();