【问题标题】:Javascript Addition operator Confusing & Not WorkingJavascript加法运算符令人困惑且不起作用
【发布时间】:2016-09-15 05:00:32
【问题描述】:

好的,我正在尝试学习 JS,但是像这样的小东西让我很难,让我想说忘了它

例如 w3schools 说 A+=B 就等于说 A = A + B 但是当我更改此代码以不使用 A+=B 操作数并将其编码为 A = A + B 时,它的工作方式不同! 所以这意味着 A+=B 并不意味着与 A = A + B 相同!

这是 w3chools 的示例,我正在学习“while”循环,这是我的问题,这是他们的代码,它每次都应该在新行上写入“数字是 1-19”

<h1>JavaScript while</h1>

<p id="demo"></p>

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

</body>
</html>

下面是我的代码,我基本上将它从“A+=B 改写为 A = A+B”,它只写“数字是”一次,数字 1-19 在同一行!

<h1>JavaScript while</h1>

<p id="demo"></p>

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

</body>
</html>

【问题讨论】:

  • 你不懂循环。您正在覆盖text,因此 The number is 按照设计只会出现一次,正如预期的那样。如果您希望它出现多次,则需要在循环中包含该部分。
  • 在第一部分中,他们在循环内构建一个字符串并最终显示结果,而在第二部分中,您将总和计算为数字并最后显示一次。基本上text += "&lt;br&gt;The number is " + i; 连接字符串和text = text + i; 正在执行additino 操作。
  • a += b 肯定是指a = a + b,问题是示例之间存在巨大差异
  • 正确的转换应该是==> text = text + "
    数字是" + i;
  • 第一个代码是..... if TEXT="THE NUMBER IS ";我=0;怎么样.... TEXT = TEXT + I 与 TEXT 不同 += "THE NUMBER IS" + I if TEXT="";我=0; ???这让我感到困惑的是 A = A + B 与 A=+B 相同,如果这是真的,代码应该仍然可以工作

标签: javascript operator-keyword addition


【解决方案1】:

您可以在循环中每次连​​接字符串:

var text = "";
var i = 0;
while (i < 10) {
  var curtext = document
    .getElementById("demo")
    .innerHTML;

  document
    .getElementById("demo")
    .innerHTML = curtext + "<br>The number is " + i;
  i++;
}
&lt;div id="demo"&gt;&lt;/div&gt;

【讨论】:

    【解决方案2】:

    您的代码和W3S 之间的区别在于您每次都将i 值添加到文本而不是所需的文本,因此输出将是&lt;br&gt;The number is 123456789 以避免您每次都应该添加&lt;br&gt;The number is

    var text = '',
      text2 = ''
    prefix = '<br>The number is',
      i = 0;
    console.clear();
    
    while (i < 10) {
      var toAppend = prefix + i
      text += toAppend;
      text2 = text2 + toAppend;
      i++;
    }
    
    document.write(text);
    document.write('<br />*****************************');
    document.write(text2);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      相关资源
      最近更新 更多