加法不能在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,那么+
会连接它们。
您将需要使用parseInt
或parseFloat
将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的加法运算符揭秘更多的细节。