一元运算符“+”
请问,以下代码输出多少?
console.log(1+ +"2" + "2");//输出32
当时我还不明白为啥两个加号会分开,会不会是写错了啊,少写或者是多写了,但是笔试完了自己测试一下发现并没有错误,所以自己就谷歌了一波,发现:“2”前面的加号并非“加号”,而是一元运算符“+”!
1、“加号”为运算符号,将两个或多个值相加;
2、一元操作符“+”为操作符号,将单独的值(可操作类型)转化为可计算数值,如:“3”、true、false等。
通俗来说,A+B中的“+”即为加号,而我们使用的+A,-B之类的就是一元操作符。
所以,上题就是将“2”转化为了数值2,所以1+2为3,答案为32。
NaN与(string/number)相加 VS (string/number)与NaN相加
console.log("A" - "B" + "2");//NaN2
console.log("A" - "B" + 2);//NaN
console.log("2" + "A" - "B");//NaN
console.log(2 + "A" - "B");//NaN
在解题过程中,我们需要知道JavaScript与C、C++等不同,JavaScript不会在即算当中直接将字符转为它对应的ascii码。