I am aware of the different behavours of both operators and I tend to use them because of their different behavour, eg. for lazy type conversions:
if(parseInt(val) == val) // val can be safely converted to int
However, the IDE is adding warnings to all
, so the above does not feel right anymore
. I’m could convert all these parts into something much less readable:
if(parseInt(val).toString() === val) // be happy webstorm
Is this really the way to go; or should I rather ignore/disable these warnings?
I would argue that any form of type coercion, if unexpected for types that may not be known at runtime (like any dynamic language) is bad practice.
For example, these are both truthy:
"0" == false "0"
While this is falsey: