I am trying to learn Javascript. Here I am confused with the following code.
http://rendera.heroku.com/usercode/eae2b0f40cf503b36ee346f5c511b0e29fc82f9e
When I put x+y
in the function it is going wrong. For example 2+2=22
, 5+7=57
But /
, *
, -
are working. Why is +
not working? Please help me. Thanks a lot in advance
One or both of the variables is a string instead of a number. This makes the
+
do string concatenation.The other arithmetic operators
/ * -
will perform atoNumber
conversion on the string(s).A quick way to convert a string to a number is to use the unary
+
operator....or with your variables:
If the numbers that you are trying to add are 10 and 12, if they resulting sum is supposed to be 22, then you should probably do it as
And the result might be a string like 1012 if one or both of the numbers is a string.
this works every time
In Javascript the + operator can either perform addition or concatenation depending on the type of its operands. When numbers are used with + it uses addition, but when strings are used with + it concatenates (joins the strings) instead
The addition operator works the following way:
1) If at least one operand is a string, then another is converted to string and concatenation is performed;
2) In other cases both operands are converted to numbers:
Check the post JavaScript's addition operator demystified for more details.
+
has two uses. One is addition, the other however is string concatenation. If one or both of your variables is a string, then+
will concatenate them.You will need to use
parseInt
orparseFloat
to turn a string into a number.