循环的基本Javascript
@ 最近的一次观察深深地盗用了我对js的知识。请看下面的代码:循环的基本Javascript,javascript,for-loop,Javascript,For Loop,@ 最近的一次观察深深地盗用了我对js的知识。请看下面的代码: var x = ""; function postbody() { for (i = 0; i < 5; i++) { x = x + "<sup>" + i + "</sup><br/>"; document.getElementById("posti").innerHTML = x; } } var x=”“; 函数postbody
var x = "";
function postbody() {
for (i = 0; i < 5; i++) {
x = x + "<sup>" + i + "</sup><br/>";
document.getElementById("posti").innerHTML = x;
}
}
var x=”“;
函数postbody(){
对于(i=0;i<5;i++){
x=x+“”+i+“
”;
document.getElementById(“posti”).innerHTML=x;
}
}
上面代码的输出类似于下面的输出&这对我来说很模糊
var x = "";
function postbody() {
for (i = 0; i < 5; i++) {
x = x + "<sup>" + i + "</sup><br/>";
}
document.getElementById("posti").innerHTML = x;
}
var x=”“;
函数postbody(){
对于(i=0;i<5;i++){
x=x+“”+i+“
”;
}
document.getElementById(“posti”).innerHTML=x;
}
后一个代码必须给我一个单一的输出(简而言之,是x的最后一个值),而不是整个迭代输出?两个代码片段完成相同的任务;第一个代码段的性能稍差,因为它在构建字符串时会将值覆盖5次,而不是只写入最后一个字符串一次
无关:
i
是一个隐式全局变量。使用var
两者都会导致相同的结果
x = x + ...
当然有。在每次迭代中向x添加新代码,然后在元素中设置它。设置innerHTML将覆盖元素的整个内容 在第一个循环中,每个迭代都会用稍大一点的html覆盖元素的html,但最终的迭代是用“complete”值x覆盖它的迭代
因此,最终结果是相同的,但第一个要慢一点。这两个示例是相同的,因为在第一个示例中,
innerHTML
在每次迭代中都会被覆盖,而变量x
的值会与其他字符串连接在一起。在最后一次迭代中,元素的innerHTML
将具有x
的总值。如果它是getElementByID('post'+i),则会有不同的结果。我不认为“侵占”意味着你认为它的意思。