加法不能在JavaScript中工作

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

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

当我把x+y放在函数中的时候会出错。 例如2+2=22 5+7=57

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

一个或两个variables是一个string而不是一个数字。 这使得+做string连接。

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

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

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

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

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

…或与您的variables:

 +x + +y 

+有两个用途。 一个是加法,另一个是string连接。 如果你的一个或两个variables是一个string,那么+会连接它们。

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

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

如果你试图添加的数字是10和12,如果他们的总和应该是22,那么你应该这样做

 +10 + +12 

如果其中一个或两个数字都是string,结果可能是1012这样的string。

这每次都有效

 ((x*1) + (y*1)) 

一元加应该工作:

 var totalVal = (+2) + (+2); alert(totalVal); // result 4 

加法运算符的工作方式如下:
1)如果至less有一个操作数是一个string,则另一个操作数转换为string并进行连接;

 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的加法运算符揭秘更多的细节。