When I add a + before a number in quotes like +"123"
, it is converting to typeof number
but if I add like "123"+
, it is waiting for next operands. Why? Why in the first case it is converting to a number?
In the first case, you use an Unary plus +
The unary plus operator precedes its operand and evaluates to its operand but attempts to convert it into a number, if it isn't already. Although unary negation (-) also can convert non-numbers, unary plus is the fastest and preferred way of converting something into a number, because it does not perform any other operations on the number. It can convert string representations of integers and floats, as well as the non-string values
true
,false
, andnull
. Integers in both decimal and hexadecimal ("0x"-prefixed) formats are supported. Negative numbers are supported (though not for hex). If it cannot parse a particular value, it will evaluate to NaN.
in the second you are using just an Addition
The addition operator produces the sum of numeric operands or string concatenation.
As you have +
and -
symbols(as unary operators) to numbers prepended only not appended. In the same way, when you add some +
or -
to strings, same applies and are if able to convert to numbers they will be converted to numbers. But when you append that, it is treated as binary operator. So, concatenates.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With