One of the weirdest things that JS do is converting string variable to numbers by itself.
When does it convert string to number?
We have 4 operators that can turn the string to number when the string value is numbers:
Plus (+)
In JavaScript the plus operator have two cases.
1- When you use the + with a string
that only have numbers it'll be converted automatically to number
.
console.log('1'+'2'); // Outputs: 3
2- When you use the + with a string
that contains text, it'll not be converted to number; it'll be added to the text.
console.log("Hey"+"There"); // Outputs: HeyThere
Minus (-)
Whenever we use - in our code the string automatically get converted to number.
E.g.
console.log('5' - 1); // Outputs: 4
console.log('5' - '2'); // Outputs: 3
Multiply (*)
Whenever we use * in our code the string automatically get converted to number.
console.log('5' * 3); // Outputs: 15
console.log('5' * '2'); // Outputs: 10
Divide (/)
Whenever we use / in our code the string automatically get converted to number.
console.log('6' / 2); // Outputs: 3
console.log('9' / '3'); // Outputs: 3
Top comments (4)
Thanks for the post! There are also the circumstances when the -, * and / operators are used with strings that are not numbers like -'string'; or 'string' * '5'; and they just evaluate to NaN.
Glad you liked it! 😊
I'm happy you noticed that, actually I said earlier that if you converted a
string
that contains text it'll beNaN
in the pervious part ⇲.JavaScript Struggles - Part 2 | Numbers
‘Abdelraḥman Dwedar 👨🏻💻🇵🇸 ・ Oct 30 ・ 2 min read
Thanks for the quick answer, I will check the rest of the parts of this series since it has interesting information.
Thanks for reading, I hope you liked them. 👍