【问题标题】:How to alert sum? [duplicate]如何提醒总和? [复制]
【发布时间】:2019-04-09 04:27:50
【问题描述】:

我有这个功能:

function add(x,y)
{
  alert("sum is " + x+y);
}

当我用数字调用它时,它不会添加。所以调用

add(1,2)

警报

sum is 12

而不是

sum is 3

应该如此。为什么?如何提醒总和?

【问题讨论】:

  • 该代码连接字符串 + 数字然后 + 数字。您需要用括号括起来。
  • 要么在打印前执行求和,要么在总和周围加上括号:“sum is” + (x + y)
  • 这应该是答案

标签: javascript


【解决方案1】:

通过将表达式作为字符串 ("The sum is...") 开始,JavaScript 将评估整个表达式作为字符串。将两个字符串加在一起只是简单地组合(“连接”)它们。

您可以将(x + y) 分组,使其首先/单独进行评估,类似于数学中的运算顺序。

(欲了解更多信息:Arithmetic operators in JavaScript

function add(x, y) {
  alert("sum is " + (x + y));
}

add(5,2);

正如我之前提到的,表达式被评估为字符串,因为它以字符串开头。但是,如果我们从添加开始呢?

function add(x, y) {
  alert(x + y + " is the sum");
}

add(5, 2);

或者最好的方法可能是简单地使用template literal

function add(x, y) {
  alert(`The sum is ${x+y}`);
}

add(5, 2);

【讨论】:

    【解决方案2】:

    问题是以下行中的数字之前有一个字符串:alert("sum is " + x+y); - 这将导致 JavaScript 将每个项目视为您想要连接的字符串,而不是添加。您可以通过简单地在alert 之前添加并存储在变量中来解决这个问题。像这样的:

    function add(x, y) {
      var sum = x + y;
      alert("sum is " + sum);
    }
    
    add(5, 10);

    【讨论】:

    • 你也可以做alert("sum is " + (x + y)),不需要变量
    • @MatthewDoyle 是的,你可以。使用变量来实现这一点并不是一个更糟糕的方法,因为有些人更喜欢更明确 - 只是一个偏好问题。
    猜你喜欢
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 2021-09-05
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多