[英]In Javascript, how can I reference a function-scoped variable from a function called within that function but defined elsewhere?
[英]Javascript: How can I access a function-scoped variable within a do while loop?
这样做会检查用户输入。 然而,控制台给我一个错误,说“大小没有定义”,我认为是因为大小在函数内,而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);
}
您可以在函数内但在do
块之外声明变量( let size;
),然后分配它( size = parseInt(prompt("Please enter a number from 1 to 64", ""), 10);
) do
阻塞。
你的选择是:
并且更优雅 - 将let size
更改为const size
(因为您不必重新分配它)并将其移动到如此高度:
function createGrid() { const size = parseInt(prompt("Please enter a number from 1 to 64", ""), 10);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.