添加不适用于JavaScript

时间:2011-12-04 18:04:52

标签: javascript addition

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

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

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

/*-正在发挥作用。为什么+无效?请帮我。非常感谢提前

7 个答案:

答案 0 :(得分:44)

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

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

2 + 2 === 4;  // true

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

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

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

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

...或您的变量:

+x + +y

答案 1 :(得分:6)

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

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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

每次都有效

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

答案 4 :(得分:1)

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

+10 + +12

如果一个或两个数字都是字符串,结果可能是1012之类的字符串。

答案 5 :(得分:0)

一元加号应该有效:

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

alert(totalVal);
// result 4

答案 6 :(得分: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's addition operator demystified了解详情。