添加在JavaScript中不起作用
我正在努力学习Javascript。在这里,我对以下代码感到困惑 当我在函数中放入添加在JavaScript中不起作用,javascript,addition,Javascript,Addition,我正在努力学习Javascript。在这里,我对以下代码感到困惑 当我在函数中放入x+y时,它出错了。例如2+2=22,5+7=57 但是,/,*,-正在工作。为什么+不起作用?请帮帮我。请提前多谢一个或两个变量是字符串而不是数字。这使得+执行字符串连接 '2' + 2 === '22'; // true 2 + 2 === 4; // true 其他算术运算符/*-将对字符串执行toNumber转换 将字符串转换为数字的快速方法是使用一元+运算符 +'2' + 2 === 4; /
x+y
时,它出错了。例如2+2=22
,5+7=57
但是,
/
,*
,-
正在工作。为什么+
不起作用?请帮帮我。请提前多谢一个或两个变量是字符串而不是数字。这使得+
执行字符串连接
'2' + 2 === '22'; // true
2 + 2 === 4; // true
其他算术运算符/*-
将对字符串执行toNumber
转换
将字符串转换为数字的快速方法是使用一元+
运算符
+'2' + 2 === 4; // true
…或使用您的变量:
+x + +y
在Javascript中,+运算符可以根据其操作数的类型执行加法或级联。当数字与+一起使用时,它使用加法,但当字符串与+一起使用时,它连接(连接字符串)而不是有两种用途。一个是加法,另一个是字符串连接。如果一个或两个变量都是字符串,则
+
将连接它们
您需要使用
parseInt
或parseFloat
将字符串转换为数字。一元加号应该可以:
var totalVal = (+2) + (+2);
alert(totalVal);
// result 4
如果你要加的数字是10和12,如果它们的结果和应该是22,那么你可能应该这样做
+10 + +12
如果一个或两个数字都是字符串,则结果可能是类似1012的字符串。每次都是这样
((x*1) + (y*1))
加法运算符的工作方式如下:
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
查看帖子了解更多详细信息。+x++y工作正常。非常感谢RightSaidFred和其他人。我想到了字符串和连接。为什么1+null=1+0=2?
1 + null // 2, null is converted to 0
1 + undefined // NaN, undefined is converted to NaN