Boucles imbriquées et portée des variables en JavaScript

Si nous avons une boucle dans une boucle, les variables, déclarées dans la boucle externe, seront accessibles dans la boucle interne. Dans l'exemple suivant, la variable num est accessible dans la boucle interne :

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

Mais en dehors de la boucle externe, la variable num est inaccessible :

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

console.log(num); // générera une erreur

Les variables, déclarées dans la boucle interne, sont inaccessibles de l'extérieur :

javascriptfor (let i = 0; i <= 9; i++) {
  for (let j = 0; j <= 9; j++) {
    let num = 3;
  }
  
  console.log(num); // générera une erreur
}

console.log(num); // générera une erreur