我正在尝试学习Javascript。在这里,我对以下代码感到困惑。
http://rendera.heroku.com/usercode/eae2b0f40cf503b36ee346f5c511b0e29fc82f9e
当我将x+y
放入函数时,它会出错。例如2+2=22
,5+7=57
但/
,*
,-
正在发挥作用。为什么+
无效?请帮我。非常感谢提前
答案 0 :(得分:44)
一个或两个变量是字符串而不是数字。这使得+
做字符串连接。
'2' + 2 === '22'; // true
2 + 2 === 4; // true
其他算术运算符/ * -
将对字符串执行toNumber
转换。
'3' * '5' === 15; // true
将字符串转换为数字的快捷方法是使用一元+
运算符。
+'2' + 2 === 4; // true
...或您的变量:
+x + +y
答案 1 :(得分:6)
+
有两种用途。一个是加法,另一个是字符串连接。如果您的一个或两个变量都是字符串,那么+
将连接它们。
您需要使用parseInt
或parseFloat
将字符串转换为数字。
答案 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