Just a reminder that JavaScript was developed in 10 days, the same amount of time i spend fixing bugs when i just miss a “,”
You just have to look at the problem from a different angle.
Not enough alcohol involved.
The tech equivalent of inventing leaded gasoline.
This is one of the most educational and entertaining reads on the internet, if you are into that kind of thing:
Has anyone actually read through that? Reading the first few examples and it’s just not understanding how languages work half of the time:
!!"false" == !!"true"; // -> true !!"false" === !!"true"; // -> true
Wow, no shit, non-empty string coerces to true, who would’ve guessed! Did you know that
!!"bullshit" === !!"true"
as well? Mind=blown.NaN === NaN; // -> false
Again, no shit, that’s in the NaN specification and the page even mentions it, so why even include it?
Which is why I’m of the opinion that dynamically typed languages are evil. !!“false” should either be caught at compile time or raise an exception.
I’m thoroughly convinced that the only use of dynamically typed languages is to introduce bugs
I am with you. To me these are non-obvious details, just a bug waiting to silently happen in production.
Why? IMO that’s perfectly valid. The various type coercions are sometimes crazy, but IMO the rule that non-empty string is coerced to
true
and empty string tofalse
is very simple to follow. The snippet is not even a gotcha, I don’t see anything worth failing over. Putting “true” or “false” in a string doesn’t change that.
Approach the problem from different angle!
Ah. The shork did the math. This explains a lot.