Why does 1+ +"2"+3 evaluate to 6 in JavaScript?

Viewed 10562

Can anyone tell me why and how the expression 1+ +"2"+3 in JavaScript results in 6 and that too is a number? I don't understand how introducing a single space in between the two + operators converts the string to a number.

4 Answers

Using +"2" casts the string value ("2") to a number, therefore the exrpession evaluates to 6 because it essentially evaluates to 1 + (+"2") + 3 which in turn evaluates to 1 + 2 + 3.

console.log(1 + +"2" + 3);
console.log(typeof "2");
console.log(typeof(+"2"));

If you do not space the two + symbols apart, they are parsed as the ++ (increment value) operator.

It's simple first it convert the string +"2" to number(According to the operator precedence) and then add all these.

For Operator precedence mozilla developer link

 1+ +"2"+3 results 6
 1+"2"+3 results "123"
AS The unary + operator converts its operand to Number type.
Related