Except strict equality, that’s a JavaScript only problem. Imagine thinking "0" should be falsy in comparison due to string literal evaluation, but truthy with logical not applied based on non-empty string. Thus !"0"=="0" is true. They couldn’t just throw away == and start over nooooo let’s add === . Utter madness
Browser compatibility. Design flaws can’t easily be fixed like how other languages can just switch to a new major version and introduce breaking changes. ES must keep backwards compatibility so has had to do more additive changes than replacing behavior altogether so that older web pages pages don’t break.
If you have that much difficulty with JavaScript then it’s likely you’ll suffer with any language.
Except strict equality, that’s a JavaScript only problem. Imagine thinking
"0"
should be falsy in comparison due to string literal evaluation, but truthy with logical not applied based on non-empty string. Thus!"0"=="0"
is true. They couldn’t just throw away==
and start over nooooo let’s add===
. Utter madnessBrowser compatibility. Design flaws can’t easily be fixed like how other languages can just switch to a new major version and introduce breaking changes. ES must keep backwards compatibility so has had to do more additive changes than replacing behavior altogether so that older web pages pages don’t break.