+ 4
Help! '2'+'2'-'2'=20 how??
if '2'+'2'=22 then 22-'2' should be 2 why it outputs 20
9 Answers
+ 9
var a = 15;
var b = "3";
alert(a+b);// 153
alert(a-b);//12
alert(a/b);//5
alert(a*b);//45
When we use adding it will sum as strings.
Otherwise it will operate as numbers. Such rules are at javascript. It is needed to learn by heart.
+ 16
in JS we use + sign for addition & concatenation.
in the case of numbers + is addition.
in the case of strings + is concatenation.
anything inside quotation marks is a string right? so '2'+'2' means concatenate the two strings.
however any other operation will treat the number in quotation as a number not a string hence the second line treats the '2' as a number, so 22-'2'=20.
+ 15
check this code:
https://code.sololearn.com/WT54KtDIphvL/?ref=app
+ 7
You are wellcome!đâșđ
+ 5
You're putting single quotes around the number, which makes it a string instead of a number. Since math uses numbers, you not calculating anything but simply concatenating the two strings together, which is why you get 22. In the next line, you didn't place quotes around 22, so it's treated as a number and it's changing the string to an int for you; the first number of the calculation is automatically converting '2' to 2.
+ 2
thnx @jakob for answer but why the last '2' changes to 2 (int) automaticlly ,when we have already decleared that as '2'(string)
+ 2
@Shudarshan
Sorry, I'm at work and didn't realize you responded.
It's called implicit type casting. Basically, the first variable in the equation is type casting onto the second variable (since they're different types) to convert it for the calculation. You can explicitly do the type casting yourself, but this is sort of a "shortcut" for it to make things easier, as well as preventing accidental errors due to not properly converting variables when necessary or trying to calculate between incorrect data types.
*edit*
Just remembered we're dealing with JS, but the principal is the same in regard to converting types. JS likes to automatically do a lot of things more than most other languages. However, the implicit type casting works the same in many of the other languages.
+ 2
@Shudarshan
https://www.w3schools.com/js/js_type_conversion.asp
^Go there and scroll down to the section "Automatic Type Conversion" and read from there. It'll explain it perfectly for you. While you're at it, won't hurt to read the whole page. lol
+ 2
thnx all guysđđ