【问题标题】:Why it only add the number with += and not +为什么它只添加数字 += 而不是 +
【发布时间】:2021-12-27 11:29:19
【问题描述】:

我正在学习编码并尝试一些 JavaScript 编程,但遇到了我不理解的问题。请帮忙! 我不明白为什么它不会用“+”添加数字,而是用“+=”添加数字。

let number = 10;
number + 10; //Return 10
number += 10; //Return 20
console.log(number);

【问题讨论】:

    标签: javascript numbers add


    【解决方案1】:

    表达式指令之间有一个重要的区别。 表达式的计算结果是一个值,但不一定有效果。 指令不一定会计算为一个值,但有一些效果。

    在您的示例中,number + 10 是一个计算结果为 20 的表达式。但它本身没有任何作用。

    相比之下,number += 10 是修改变量number 值的指令。

    注意number += 10本质上等同于number = number + 10

    代码中的最后一行 console.log(number) 也是一条指令:它打印 number 的值。

    你试过console.log(number + 10)的指令吗?

    【讨论】:

    • @NickParsons 我和自己争论过,我应该给“表达”和“指示”下一个多么正式的定义。我决定凭直觉。一条指令做某事,一个表达式计算某事。这是非常非正式的,实际情况要复杂得多——一条指令包含一个表达式,而一个表达式包含子表达式。如果初学者还不了解number + 10number += 10 之间的区别,我认为他们甚至需要 知道number += 10 实际上评估为一个值。在大多数情况下,该值无论如何都会被丢弃。
    • 我同意这一点,我认为您现在的编辑现在也使事情变得更清晰/更正确。解释也很好
    【解决方案2】:

    '+=' 运算符来自C语言 这是一个快捷方式

    number = number + 10
    

    所以在你的代码中一切正常, 但是number + 10只是没有赋值的操作;

    【讨论】:

      【解决方案3】:

      number + 10 行将计算该值,但您需要将此值分配给变量(以将其存储在变量中)。

      确实,你需要写number = number + 10

      关于+=的语法:它只是让代码更容易阅读,下面两个完全一样:

      • number = number + 10
      • number += 10

      欲了解更多信息Addition assignment

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-24
        • 1970-01-01
        • 2023-02-20
        相关资源
        最近更新 更多