Thanks For Inventing JavaScript

Thanks For Inventing JavaScript
javascript-memes, type-coercion-memes, programming-quirks-memes, nan-memes, floating-point-memes | ProgrammerHumor.io

JavaScript's type coercion is like that friend who tries to help but makes everything worse. Look at this beautiful chaos:

  • typeof NaN returns "number" because obviously not-a-number is totally a number!
  • Loose equality says true==1 but strict equality says true===1 is false. Make up your mind!
  • Floating point? 0.5+0.1==0.6 is true but 0.1+0.2==0.3 is false. IEEE 754 strikes again!
  • Math.max() with no arguments gives -Infinity while Math.min() gives Infinity. Peak logic.
  • The masterpiece: (1+[]+[]+![]) has length 9 because it converts to "1" + "" + "" + "false" = "1false"
  • And my personal favorite: true+true+true===3 is actually true because JavaScript converts booleans to numbers for addition!

No wonder the creator is smirking. He unleashed this beautiful monster on us and now we're all stuck with it. And we can't even escape because the entire web runs on it!

More Like This