我正在尝试学习Javascript。在这里,我对以下代码感到困惑。
http://rendera.heroku.com/usercode/eae2b0f40cf503b36ee346f5c511b0e29fc82f9e
当我在函数中使用 x+y
时出现错误。例如,2+2=22
,5+7=57
但是 /
,*
和 -
是可以工作的。为什么 +
不起作用?请帮帮我。非常感谢你提前的帮助。
我正在尝试学习Javascript。在这里,我对以下代码感到困惑。
http://rendera.heroku.com/usercode/eae2b0f40cf503b36ee346f5c511b0e29fc82f9e
当我在函数中使用 x+y
时出现错误。例如,2+2=22
,5+7=57
但是 /
,*
和 -
是可以工作的。为什么 +
不起作用?请帮帮我。非常感谢你提前的帮助。
其中一项或者两项变量是字符串而非数字,这使得+
执行的是字符串连接操作。
'2' + 2 === '22'; // true
2 + 2 === 4; // true
其他算术运算符/ * -
会对字符串进行toNumber
转换。
'3' * '5' === 15; // true
将字符串转换为数字的快速方法是使用一元的+
运算符。
+'2' + 2 === 4; // true
...或者使用您的变量:
+x + +y
+
有两个用途。一个是加法,另一个则是字符串拼接。如果你的变量中有一个或两个为字符串,那么+
就会将它们拼接起来。
若需要把字符串转换成数字,你需要使用parseInt
或parseFloat
。
Javascript中的+运算符可以根据其操作数的类型执行加法或连接操作。当数字与+一起使用时,它执行加法操作,但是当字符串与+一起使用时,它会连接(将字符串连接在一起)。
+10 + +12
((x*1) + (y*1))
一元加应该有效:
var totalVal = (+2) + (+2);
alert(totalVal);
// result 4
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加法运算符的解密以获取更多详细信息。