Вложени цикли и област на видимост в JavaScript

Ако имаме цикъл в цикъл, то променливите, декларирани във външния цикъл, ще бъдат достъпни във вътрешния. В следващия пример променливата num е достъпна във вътрешния цикъл:

javascriptfor (let i = 0; i <= 9; i++) {
  let num = 3;
  
  for (let j = 0; j <= 9; j++) {
    console.log(num); // ще изведе 3
  }
}

А ето отвън на външния цикъл променливата num не е достъпна:

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

console.log(num); // ще даде грешка

Променливи, декларирани във вътрешния цикъл, не са достъпни отвън:

javascriptfor (let i = 0; i <= 9; i++) {
  for (let j = 0; j <= 9; j++) {
    let num = 3;
  }
  
  console.log(num); // ще даде грешка
}

console.log(num); // ще даде грешка