Omfattning för kapslade funktioner i JavaScript

Om en funktion innehåller en annan funktion inuti - variablerna för den yttre funktionen är synliga i den inre:

javascriptfunction test() {
  let num = 1; // variabel för den yttre funktionen
  
  function func() {
    console.log(num); // skriver ut 1
  }
  
  func(); // anropar den inre funktionen
}

test(); // anropar den yttre funktionen

Även i den inre funktionen kommer variabler att vara synliga, som definierats utanför den yttre funktionen:

javascriptlet num = 1; // global variabel

function test() {
  function func() {
    console.log(num); // skriver ut 1
  }
  
  func(); // anropar den inre funktionen
};

test(); // anropar den yttre funktionen
Задание 1

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

test();