ჩადგმული ფუნქციების ხილვადობის არე 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();