Cicli annidati e ambito di visibilità in JavaScript

Se abbiamo un ciclo all'interno di un altro ciclo, le variabili dichiarate nel ciclo esterno saranno accessibili in quello interno. Nell'esempio seguente la variabile num è accessibile nel ciclo interno:

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

Tuttavia, all'esterno del ciclo esterno la variabile num non è accessibile:

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

console.log(num); // darà un errore

Le variabili dichiarate nel ciclo interno non sono accessibili dall'esterno:

javascriptfor (let i = 0; i <= 9; i++) {
  for (let j = 0; j <= 9; j++) {
    let num = 3;
  }
  
  console.log(num); // darà un errore
}

console.log(num); // darà un errore