Укладзеныя цыклы і вобласць бачнасці ў 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); // выдасць памылку