Coercion in JavaScript.

JavaScript is strange, It has got lots of unexpected behaviors and coercion is one of them. Coercion is always a subject of argument among the community. Some programmers think coercion as feature whether most of the programmers take it as flow in the design of the language and advice to avoid it. But to avoid something, you should be aware of that first. So let’s take dive in coercion and try to understand what the hack is it.
The unexpected typecasting in javascript known as coercion. While working with data you need to convert it from one to another type like number to string or something like that, So to minimize your efforts javascript does it automatically for you, though it is not that great because most of the time get out of control and cause bugs in the system, That’s why most of the people avoid it but it’s totally up to you, if you are familiar with this you can use otherwise just try to avoid it.
Now, Coercion is of three types. Curious? let’s discuss it.

1. Number and String

Let’s understand with the example
console.log(‘100’ – 10)

What do you think, what will be the result of the above code? if you think it will produce any error wait, my friend, you are wrong here because the output will be 90. Why?
Because javascript is smart it already knows that we can subtract two numbers only, so it coverts string i.e. ‘100’ into a number i.e. 100.
Ok, you got the point now let’s try another example
console.log(‘100’ + 10)

Notice the (+) sign instead of (-) in the above code. So what do you think? what should be the output ?
If you think it will be 110, sorry to say but you are wrong again, It will be 10010, why?
Because in case of positive sign, instead of converting 100 into a number javascript concatenated both and produced the result 110.

2. Boolean

This one is most trouble maker among all, It is mainly used in if statements, loops and in logical operations.
So, let’s consider this example
console.log(true + 100)

If you predicted output will be 101, you are getting smart. The reason is javascript take True as 1 and False as 0, Now you got the point I’m pretty sure you will definitely able to predict the output of next code.
console.log(false + 100) // obiously 100

In case you didn’t get it. False will be considered as 0 so 0 + 100 will be 100.

3. Equality

We are towards the end of this post and I hope you got the idea. Now let’s take a look at the last one.
console.log(‘100’ == 100)

The above code will return True because in case of double equal operator javascript doesn’t check the type of left and right side. It just checks whether values are equal or not.
console.log(‘100’ === 100) // False

In the case of triple equal, the result will be False because triple equal operator strictly checks the type of left and right side.
I hope you got all my point. I will be back with new post untill then Good Bye.

Link: https://dev.to/uddeshjain/coercion-in-javascript-1o2f