簡體   English   中英

如何在不更改 javascript 中的全局變量的情況下更改局部變量?

[英]How do I make changes to a local variable without changing the global variable in javascript?

var i = 100;

function gamePlay() {
       
    while(i >= 0) {
        if (i>0) {
            console.log(i);}
        else{console.log(**i+1**);}
        i--;
    }
}
    

當我將 i 增加 1 時(代碼中的粗體部分),我想讓該更改發生在本地。 其余代碼應使用全局 i,但問題是更改適用於全局,當我將 1 添加到 i 時,其余代碼停止工作。 即使我在關閉 while 循環之前減去 1 也是如此。

嘗試這個:

var i = 100;

function gamePlay() {
    let i2 = i; // local variable

    while(i2 >= 0) {
        if (i2 > 0) {
            console.log(i2);
        }
        else {
            console.log(i2+1);
        }

        i2--;
    }
}

當您在函數中聲明變量時,它們是該特定函數的本地變量。 但是當你在函數之外聲明它們時,它們是全局的並且可以在任何地方使用。

在您的情況下, var i = 100是全局的,可以在任何函數中使用。 因此,您需要在while塊中聲明另一個變量。

暫無
暫無

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

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