簡體   English   中英

為什么輸出不應用第二個變量

[英]Why output doesn't apply the second variable

我試圖理解為什么等於txt的變量txt在返回時未應用於該語句? 如果我將變量設置為10,那么當循環返回時,它是否不適用於輸出?

這是我的代碼:

 function myFunction() { var myNumber = 2; var txt = 10; while (myNumber != Infinity) { myNumber = myNumber * myNumber; txt = txt + myNumber + "<br>"; } document.getElementById("demo").innerHTML = txt; } 
 <button onclick="myFunction()">Try it</button> <p id="demo"></p> 

您的var txt = 10不在while循環內,因此不會在每個循環后重置。 我認為您的問題意味着您每次運行while循環時都希望txt = 10 ,而myNumber僅遞增。 在這種情況下,您可以按以下方式簡化代碼:

function myFunction() {
    var myNumber = 2; 
    while (myNumber != Infinity) {
        myNumber = myNumber * myNumber;
        var txt = 10 + myNumber + "<br>";
    }
    document.getElementById("demo").innerHTML = txt;
}

我認為問題是您要添加到txt的中斷。 如果我正確理解,這應該可以解決您的問題。

function myFunction() {
var myNumber = 2; 
var txt = 10;
var output = "";
while (myNumber != Infinity) {
    myNumber = myNumber * myNumber;
    txt = txt + myNumber;
    output = output + txt  + "<br>";
}
document.getElementById("demo").innerHTML = output;
}

該變量的確隨循環的每次迭代而變化。

讓我們在每次迭代中遵循該值:

#1 iteration: txt == 10 + 4 + "<br>" == "14<br>"

#2 iteration: txt == "14<br>" + 16 + "<br>" == "14<br>16<br>"

#3 iteration: txt == "14<br>16<br>" + 256 == "14<br>16<br>256"

等等。 另外,在每次迭代中,您都完全更改了<p>的HTML代碼,相比之下,例如添加帶有append的HTML代碼。 基本上,變量txt隨每次迭代而變化,並且您在<p>顯示它的最后一個值

保留值為10的var text將在第一次迭代中重新分配字符串集的值。

如果您注銷了txt ,則每次迭代都會看到以下內容:

// 1) 14
// Effectively '14<br>`
// A result of 10 + (2*2) + <br>

// 2) 14
//    16
// Effectively '14<br>16<br>`
// This is because txt was '14<br>`
// So '14<br>` + (4*4) + <br>

// 3) 14
//    16
//    256
// Effectively '14<br>16<br>256<br>`
// This is because txt was '14<br>16<br>`
// So '14<br>16<br>` + (16*16) + <br>

等等...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM