Это делает пока проверяет пользовательский ввод.Тем не менее, консоль выдает ошибку, говоря: «размер не определен», что, я думаю, связано с тем, что размер находится внутри функции, тогда как условие while находится вне функции
const newGrid = document.getElementById('new-grid');
newGrid.addEventListener('click', createGrid);
const main = document.querySelector('main');
function createGrid() {
do {
let size = parseInt(prompt("Please enter a number from 1 to 64", ""), 10);
const numPx = (600 / size) - 2;
let px = numPx + 'px';
for (let i = 0; i < size; i++) {
for (let j = 0; j < size; j++) {
const div = document.createElement('div');
div.setAttribute('class', 'grid');
main.appendChild(div);
div.setAttribute('style', `width: ${px}; height: ${px}`);
}
}
} while(isNaN(size) || size > 64 || size < 1);
}