在执行我的 JS 代码时,我面临一个非常奇怪的问题。我的代码执行没有进入for循环,控制台中也没有错误。当我尝试通过直接在控制台中键入来执行循环时,它正在执行。这是循环:
for(var x = 0; x <= distance; x++) {
var yMinusY1Sq = distance*distance - (x - startX)*(x - startX)
var yMinusy1Cal = parseInt(Math.sqrt(yMinusY1Sq));
console.log(yMinusY1Sq, yMinusy1Cal);
if((yMinusY1Sq == yMinusy1Cal*yMinusy1Cal)) {
y = yMinusY1Cal + startY;
var point = document.createElement("div");
point.className = "output-point";
point.style.height = (grid.offsetHeight/16).toString() + "px";
point.style.width = (grid.offsetWidth/16).toString() + "px";
outputPoints.appendChild(point);
point.style.top = y*oneBoxY;
point.style.left = (x+startX)*oneBoxX;
isodistancePoints.push(point);
}
}
这里distance是>=1。console.log循环内部没有执行和打印任何内容。而如果另一个console.log放在循环之前,它正在打印。那么,出了什么问题?
编辑 我试过打印distance,这是一个全局变量,就在循环之前,它正在显示undefined,但如果直接使用控制台打印,它会给出一个number值。这是一个屏幕截图:
这里,是初始化和函数的顺序,初始化的其他全局变量工作正常。
var distance;
init();
function init() {
distance = 1;
//Other code
}
$("#run").bind('click', function () {
// some other code
for(var x = 0; x <= distance; x++) {
// some code
}
});
慕后森
鸿蒙传说
相关分类