this post was submitted on 16 Jun 2023
1 points (100.0% liked)

Programmer Humor

32061 readers
1340 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
top 6 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (1 children)

Ok some of these I understand but what the fuck. Why.

Edit: ok I have a theory. == checks equality without casting to any types, so they're not equal. But < and > are numeric operations, so null gets cast to 0. So <= and >= cast it to 0, and it's equal to 0, so it's true.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

I'm not sure if you really want to know, but:

greater than, smaller than, will cast the type so it will be 0>0 which is false, ofcourse. 0>=0 is true.

Now == will first compare types, they are different types so it's false.

Also I'm a JavaScript Dev and if I ever see someone I work with use these kind of hacks I'm never working together with them again unless they apologize a lot and wash their dirty typing hands with.. acid? :-)

edit: as several people already pointed out, my answer is not accurate. The real solution was mentioned by mycus

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

This one is one of my favourite JS quirks:

JS quirk

[–] [email protected] 1 points 1 year ago
[–] [email protected] 0 points 1 year ago (1 children)

I know it’s a joke, but it’s an old one and it doesn’t make a lot of sense in this day and age.

Why are you comparing null to numbers? Shouldn’t you be assuring your values are valid first? Why are you using the “cast everything to the type you see fit and compare” operator?

Other languages would simply fail. Once more JavaScript greatest sin is not throwing an exception when you ask it to do things that don’t make sense.

[–] [email protected] 1 points 1 year ago

Shouldn’t you be assuring your values are valid first?

Step 1: Get to prod

Step 2-10: Add features

Step 11: Sell the company before it bites you