Zagnieżdżone pętle i zakres zmiennych w JavaScript

Jeśli mamy pętlę w pętli, zmienne zadeklarowane w pętli zewnętrznej będą dostępne w pętli wewnętrznej. W poniższym przykładzie zmienna num jest dostępna w pętli wewnętrznej:

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

Natomiast na zewnątrz pętli zewnętrznej zmienna num jest niedostępna:

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

console.log(num); // zwróci błąd

Zmienne zadeklarowane w pętli wewnętrznej są niedostępne na zewnątrz:

javascriptfor (let i = 0; i <= 9; i++) {
  for (let j = 0; j <= 9; j++) {
    let num = 3;
  }
  
  console.log(num); // zwróci błąd
}

console.log(num); // zwróci błąd