【问题标题】:JavaScript Assignment Operator in 'while' loop'while' 循环中的 JavaScript 赋值运算符
【发布时间】:2016-10-17 19:06:47
【问题描述】:

我有一个脚本:

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

此脚本将写入数字 0 ....9
为什么我必须使用“text += i”赋值?
为什么我不能代码“text = i”?
您如何解释这段代码行?
谢谢你的时间!

ps。我知道text += i 相当于

text = text + i     

这里不是问题。 ;)
我也知道如果我输入“text = i”,我会得到最后一个数字:9。

【问题讨论】:

  • 什么?你在你的(ps)中回答你自己的问题,不是吗?
  • 我不明白为什么我必须声明text等于“text”+“i”,而不是“text”等于“i”
  • “声明”什么?使用+= 并不是在“声明”任何内容。意思是“把右边的值加到左边的值上,把结果存到左边的变量里。”
  • 您是否比较了使用+== 的输出?他们非常不同。因此,您使用+= 为一个,= 为另一个。您已经了解每个运算符的作用以及如果直接分配会发生什么。你不明白什么?

标签: javascript while-loop assignment-operator


【解决方案1】:

普通赋值运算符= 将左侧的变量(或对象属性)设置为右侧的值。左侧变量之前的值丢失了。

+= 运算符在当前左侧值和右侧值之间执行加法运算,然后将该结果分配给左侧。如果你想累加一系列加法运算到一个变量中,那么你可以使用+=

如果您只使用=,那么,变量text 将只保留最后分配的值。

这就是赋值运算符在 JavaScript 等大量语言中的工作方式。

【讨论】:

    【解决方案2】:

    首先,您知道运算符的工作原理是一件好事……所以让我澄清一下为什么使用该脚本 文字+=我

    让我们遍历循环 最初文本='' 第一次进来 文本='0' 因此,现在如果您将文本附加到 div,那么您可以再次将其设置为空白字符串或使用 text=i

    但是您没有将文本添加到 div。 因此,如果我们使用 text =i,则文本变为 0 并且在 next 变成 1 等等最后它的值将是 9 但是我们想要 0...9 所以我们必须不断附加数字的字符串值 得到 0...9

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      • 2018-01-27
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      相关资源
      最近更新 更多