Sisäkkäisten funktioiden näkyvyysalue JavaScriptissä

Jos funktio sisältää toisen funktion sisällään - ulomman funktion muuttujat ovat näkyvissä sisäisessä funktiossa:

javascriptfunction test() {
  let num = 1; // ulomman funktion muuttuja
  
  function func() {
    console.log(num); // tulostaa 1
  }
  
  func(); // kutsutaan sisäistä funktiota
}

test(); // kutsutaan ulompaa funktiota

Myös sisäisessä funktiossa näkyvät muuttujat, jotka on määritelty ulomman funktion ulkopuolella:

javascriptlet num = 1; // globaali muuttuja

function test() {
  function func() {
    console.log(num); // tulostaa 1
  }
  
  func(); // kutsutaan sisäistä funktiota
};

test(); // kutsutaan ulompaa funktiota
Задание 1

Määritä, suorittamatta koodia, mitä tulostetaan konsoliin:

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

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

Määritä, suorittamatta koodia, mitä tulostetaan konsoliin:

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

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

Määritä, suorittamatta koodia, mitä tulostetaan konsoliin:

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

Määritä, suorittamatta koodia, mitä tulostetaan konsoliin:

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

test();