我真的是javascript的新手,并且通常对代码进行编码,我不明白为什么这会导致无限循环:
Loader
如果我将其取出,则该网页可以很好地加载,但是如果保留它,则该网页将永远不会完全加载,并且我的浏览器使用了50%的CPU。
这是我的其余代码:
let newTr = document.createElement('tr');
谢谢!
P.S。代码可能还有很多其他错误,在弄清楚这一点之前,我无能为力!
答案 0 :(得分:0)
作为解释,在您的代码中
i = pfcCase.length - 1
将pfcCase.length - 1
的值分配给i
。该循环部分的语法应为
an expression to be evaluated before each loop iteration.如果此表达式的值为true,则执行语句。
对代码的评估没有任何意义。
评估
i < pfCase.length
在每次迭代之前检查当前索引是否小于数组的长度,但是工作正常。
答案 1 :(得分:0)
这里没有条件陈述。在此语句中,您将pfcCase长度减1分配给I变量。
for (var i = 0; i = pfcCase.length - 1; i++) {
您必须将i变量与pfcCase的长度减去1进行比较。
这应该有效。
for (var i = 0; i < pfcCase.length - 1; i++) {
此行不执行您认为的操作。
let newText = document.createTextNode(i.value);
i只是索引,即数字。它没有value属性。
这就是您要做的。
let newText = document.createTextNode(pfcCase[i].value);
我更喜欢使用数组forEach方法。它更干净,更不容易出错。
pfcCase.forEach( function(val){
let newTd = document.createElement('td');
let newText = document.createTextNode(val.value);
console.log('The array element is. '. val.value, ' The value is. ', val.value);
newTd.appendChild(newText);
newTr.appendChild(newTd);
});