22

我正在尝试学习 Javascript。在这里,我对以下代码感到困惑。

http://rendera.heroku.com/usercode/eae2b0f40cf503b36ee346f5c511b0e29fc82f9e

当我x+y输入函数时,它出错了。例如2+2=225+7=57

但是/, *,-正在工作。为什么+不工作?请帮我。非常感谢提前

4

7 回答 7

53

一个或两个变量是字符串而不是数字。这使得+do 字符串连接。

'2' + 2 === '22';  // true

2 + 2 === 4;  // true

其他算术运算符/ * -将对字符串执行toNumber转换。

'3' * '5' === 15;  // true

将字符串转换为数字的一种快速方法是使用一元运算+符。

+'2' + 2 === 4;  // true

...或使用您的变量:

+x + +y
于 2011-12-04T18:06:22.813 回答
8

+有两个用途。一个是加法,另一个是字符串连接。如果您的一个或两个变量是字符串,+则将它们连接起来。

您将需要使用parseIntparseFloat将字符串转换为数字。

于 2011-12-04T18:08:16.240 回答
3

在 Javascript 中,+ 运算符可以根据其操作数的类型执行加法或连接。当数字与 + 一起使用时,它使用加法,但当字符串与 + 一起使用时,它连接(连接字符串)而不是

于 2011-12-04T18:08:12.010 回答
1

如果您尝试添加的数字是 10 和 12,如果它们的结果总和应该是 22,那么您可能应该这样做

+10 + +12

如果其中一个或两个数字是字符串,则结果可能是类似 1012 的字符串。

于 2014-06-11T08:21:06.613 回答
1

这每次都有效

((x*1) + (y*1))
于 2014-07-18T04:32:16.067 回答
0

一元加号应该起作用:

var totalVal = (+2) + (+2);

alert(totalVal);
// result 4
于 2014-05-22T17:46:18.623 回答
0

加法运算符的工作方式如下:
1) 如果至少一个操作数是字符串,则将另一个操作数转换为字符串并执行连接;

1 + "2"        // "12"
"2" + "3"      // "23"
"2" + null     // "2null", null is converted to "null"

2) 在其他情况下,两个操作数都转换为数字:

1 + null      // 2, null is converted to 0
1 + undefined // NaN, undefined is converted to NaN

查看帖子JavaScript 的加法运算符揭秘了解更多详细信息。

于 2016-01-04T15:09:06.123 回答