this post was submitted on 14 Aug 2023
653 points (95.2% liked)
Programmer Humor
19551 readers
948 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Strict vs loose equality has gotten me so many times, but I can sort of see why they did it. The problem you mention with integers 0 & 1 is a major annoyance though. Like it is fairly common to check whether a variable is populated by using if (variable) {} - if the variable happens to be an integer, and that integer happens to be 0, loose quality will reflect that as false.
But on the other side, there have been plenty of occasions where I'm expecting a boolean to come from somewhere and instead the data is passed as a text string. "true" == true but "true" !== true
Lua does intrinsic evaluation of strings that i'd argue is not nearly as crazy. I get the value of it since half of interpreted languages it just churning through strings. But I also don't recommend any large codebase ever use JS's == or string coercion because it can go against expectations. This graph argues in JS's favor but comparison is a little more crazy https://algassert.com/visualization/2014/03/27/Better-JS-Equality-Table.html