在执行我的 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 }});
2 回答
![?](http://img1.sycdn.imooc.com/545868550001f60202200220-100-100.jpg)
慕后森
TA贡献1802条经验 获得超5个赞
问题是循环在一个else
语句中,并且if
语句的 有一个名为 的局部变量distance
。我仍然不知道错误的确切原因,因为执行不应该进入,if
因为它的条件不满足,但是重命名变量起作用了,现在我得到了所需的输出。但如果有人知道确切原因,请发表评论。
添加回答
举报
0/150
提交
取消