Kapslade loopar och scope i JavaScript

Om vi har en loop inuti en loop, kommer variabler som deklareras i den yttre loopen att vara tillgängliga i den inre. I följande exempel är variabeln num tillgänglig i den inre loopen:

javascriptfor (let i = 0; i <= 9; i++) {
  let num = 3;
  
  for (let j = 0; j <= 9; j++) {
    console.log(num); // skriver ut 3
  }
}

Däremot är variabeln num inte tillgänglig utanför den yttre loopen:

javascriptfor (let i = 0; i <= 9; i++) {
  let num = 3;
  
  for (let j = 0; j <= 9; j++) {
    
  }
}

console.log(num); // ger ett fel

Variabler som deklareras i den inre loopen är inte tillgängliga utanför:

javascriptfor (let i = 0; i <= 9; i++) {
  for (let j = 0; j <= 9; j++) {
    let num = 3;
  }
  
  console.log(num); // ger ett fel
}

console.log(num); // ger ett fel