For循环冻结Javascript
For Loop Freezes Javascript?
这是我的web编程类的一个小的外部js脚本,它应该提示用户为员工工作的小时数,直到他们输入一个负数,然后它打印一个具有适当行数(输入小时数的员工数)的表,其中一列为工作小时数,一列为工资。但最后的for循环冻结了我浏览器中的js引擎。如果我对循环进行注释,提示会很好。如果我放入一个无意义的while循环,将某些内容打印到屏幕上,提示仍然有效,然后while循环就会运行。但是,这个愚蠢的for循环只是冻结了整个脚本,打开HTML页面实际上什么都没做。空白页。作业已经迟到了,我已经无计可施了。
var empHours = 0;
var numEmployees = 0;
var empWage = 0;
var totalWages = 0;
var empWages = new Array();
do {
empHours = prompt("Enter number of hours employee worked this week.");
if (empHours > -1) {
numEmployees++;
if (empHours <= 40) {
empWage = (15 * empHours)
empWages[numEmployees-1] = empWage;
totalWages += empWage;
} else {
empWage = (15 * 1.5 * empHours);
empWages[numEmployees-1] = (15 * 1.5 * empHours);
totalWages += empWage;
}
}
} while (empHours > -1);
confirm("You have " + numEmployees + " employees, is this correct?");
var root = document.getElementById('tablediv');
var table = document.createElement('table');
var row, cell;
for (i=0; i<=numEmployees; i++) {
document.write("Made it to for loop"):
row = table.insertRow(i);
for (j=0; j<3; j++) {
cell = row.insertCell(j);
cell.innerHTML(empWages[i])
}
}
root.appendChild(table);
Prompt返回null或字符串。它不返回数字。
我建议你改成:
while (empHours && parseInt(empHours, 10) >= 0)
这可以防止null
,并在检查字符串是否为负数之前将其转换为数字。
此外,我建议您永远不要使用document.write()
进行调试。如果在错误的时间使用,它真的会弄乱现有的页面。您应该使用console.log()
或实际的调试器。
您的问题似乎是语法错误,拼写错误。
document.write("Made it to for loop"):
^
this is the problem in your for loop.
您上面的测试实际上也是在删除表。删除document.write
,代码就能正常工作。
DEMO
相关文章:
- For循环冻结Javascript
- Javascript-SetTimeout导致浏览器冻结
- 循环的Javascript冻结浏览器,没有语法错误
- IE8/Javascript冲突?IE8正在开发中冻结整个站点-包括Javascript列表
- 安卓系统:通过loadUrl运行javascript时,网络视图中的视频会冻结
- 为什么Javascript会冻结计算机,而不是C++或Python
- 相当于pyinstaller,用于冻结python、html和javascript
- 仅限Chrome:ajax冻结了我的JavaScript执行
- 如何在不冻结浏览器的情况下执行大量javascript代码
- Javascript设置超时和重定向-IE冻结
- Javascript:在调用服务器时防止浏览器冻结
- 接受Javascript警报后,IE 11暂时冻结
- object.仅冻结对象方法.JavaScript
- JavaScript 冻结/崩溃在 Chrome 中
- 如何使用javascript冻结表头
- JavaScript冻结浏览器
- Javascript冻结gridview中的列和行
- 暂停Javascript ||冻结页面
- JavaScript冻结浏览器
- 如何使用Javascript冻结一个列