循环的基本Javascript

循环的基本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

@

最近的一次观察深深地盗用了我对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(){
对于(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),则会有不同的结果。我不认为“侵占”意味着你认为它的意思。