Estoy tratando de entender el patrón del módulo y tengo dificultades para entender por qué una variable declarada en el interior genera un error cuando la llamo en la consola versus ningún error cuando simplemente la modifico. En el siguiente ejemplo, si escribo "board" en la consola mientras uso "let board", aparece un mensaje de error. Pero si escribo "tablero" en la consola mientras uso solo "tablero" en js, está bien.
const gameBoard = (function(){ board = //OK , while "let/const board" prompts an error [[0,0,0], [0,0,0], [0,0,0] ]; for(let i=0; i<board.length; i++){ let row = document.createElement('div'); row.className='row'; for(let j=0; j<board[i].length; j++){ let cell = document.createElement('div'); cell.className='cell'; cell.dataset.number=0; row.appendChild(cell); } document.querySelector('.mainPage').appendChild(row) } return{ board } })();