2016-10-17 81 views
-2

我有一個腳本:JavaScript的賦值運算符「而」循環

<script> 
var text = ""; 
var i = 0; 
while (i < 10) { 
text += i; 
i++; 
} 
document.getElementById("demo").innerHTML = text; 
</script> 

這個腳本會寫數字0 .... 9
爲什麼我必須使用「文字+ =我」分配?
爲什麼我不能編碼「text = i」?
你會如何解釋這段代碼?
感謝您的時間!

ps。我知道text += i相當於

text = text + i  

這不是問題在這裏。 )
也知道如果I型「文本= I」我將得到剛剛過去的數:9.

+4

什麼?你在(ps)中回答自己的問題,不是嗎? – Malk

+0

我不明白爲什麼我要聲明文本與「文本」+「我」相等,而不是「文本」等於「我」 – Csaba

+2

「聲明」什麼?你不是用'+ ='來「聲明」任何東西。這意味着,「將右側的值添加到左側的值,並將結果保存到左側的變量中。」 – Pointy

回答

0

的滑動賦值運算符=設置變量(或對象屬性)左側的值在右邊。左側變量的前一個值丟失。

+=運算符在當前左側值和右側值之間執行加法,然後將該結果分配給左側。如果你想累加一系列的加法操作變成了一個變量,那麼,你會用+=

如果您只使用=,那麼變量text將僅保留最後分配的值。

這就是賦值運算符在JavaScript等大量語言中工作的方式。

+0

感謝您的幫助! – Csaba

0

其所有的好,你知道怎麼算的工作......所以讓我澄清,爲什麼腳本是用 文字+ =我

讓我們通過循環 最初文本=「」 對於第一次先走了它有 文本=「0」 所以,現在如果你追加到div的文本,那麼你可能會再次設置爲空字符串或使用文本=我

但您不添加到div的文本。 所以,如果我們使用文本=我的文本變爲0 而在接下來變成1等等在結束它的值將是9 但我們想要0 ... 9所以我們必須繼續附加數字字符串值 獲得0 ... 9

+0

非常感謝您的幫助! – Csaba