我正在尝试学习 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
但是/
, *
,-
正在工作。为什么+
不工作?请帮我。非常感谢提前
一个或两个变量是字符串而不是数字。这使得+
do 字符串连接。
'2' + 2 === '22'; // true
2 + 2 === 4; // true
其他算术运算符/ * -
将对字符串执行toNumber
转换。
'3' * '5' === 15; // true
将字符串转换为数字的一种快速方法是使用一元运算+
符。
+'2' + 2 === 4; // true
...或使用您的变量:
+x + +y
+
有两个用途。一个是加法,另一个是字符串连接。如果您的一个或两个变量是字符串,+
则将它们连接起来。
您将需要使用parseInt
或parseFloat
将字符串转换为数字。
在 Javascript 中,+ 运算符可以根据其操作数的类型执行加法或连接。当数字与 + 一起使用时,它使用加法,但当字符串与 + 一起使用时,它连接(连接字符串)而不是
如果您尝试添加的数字是 10 和 12,如果它们的结果总和应该是 22,那么您可能应该这样做
+10 + +12
如果其中一个或两个数字是字符串,则结果可能是类似 1012 的字符串。
这每次都有效
((x*1) + (y*1))
一元加号应该起作用:
var totalVal = (+2) + (+2);
alert(totalVal);
// result 4
加法运算符的工作方式如下:
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 的加法运算符揭秘了解更多详细信息。