Buclele imbricate și domeniul de aplicare în JavaScript

Dacă avem o buclă în interiorul alteia, variabilele declarate în bucla exterioară vor fi accesibile în cea interioară. În următorul exemplu, variabila num este accesibilă în bucla interioară:

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

Cu toate acestea, în afara buclei exterioare, variabila num nu este accesibilă:

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

console.log(num); // va genera o eroare

Variabilele declarate în bucla interioară nu sunt accesibile în exterior:

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

console.log(num); // va genera o eroare