Sleepless One@lemmy.ml to Programmer Humor@lemmy.mlEnglish · 3 days agoThe JavaScript type coercion algorithmlemmy.mlimagemessage-square44linkfedilinkarrow-up1124arrow-down12file-textcross-posted to: programmer_humor@programming.dev
arrow-up1122arrow-down1imageThe JavaScript type coercion algorithmlemmy.mlSleepless One@lemmy.ml to Programmer Humor@lemmy.mlEnglish · 3 days agomessage-square44linkfedilinkfile-textcross-posted to: programmer_humor@programming.dev
minus-squareTelemachus93@slrpnk.netlinkfedilinkarrow-up14·3 days agoMh, ‘0’ is a nonempty string, so !‘0’ returns false. Then of course !(!‘0’) would return true. I’d absolutely expect this, Python does the same. And the second thing is just JavaScript’s type coercion shenanigans. In Python bool('0') # returns True because of nonempty string bool(int('0')) # returns False because 0 == False Knowing that JavaScript does a lot of implicit type conversions, stuff like that doesn’t strike me as very surprising.
To make it even worse
Mh, ‘0’ is a nonempty string, so !‘0’ returns false. Then of course !(!‘0’) would return true. I’d absolutely expect this, Python does the same.
And the second thing is just JavaScript’s type coercion shenanigans. In Python
bool('0') # returns True because of nonempty string bool(int('0')) # returns False because 0 == False
Knowing that JavaScript does a lot of implicit type conversions, stuff like that doesn’t strike me as very surprising.
wait hang on…