this post was submitted on 17 May 2025
492 points (97.9% liked)

Programmer Humor

23366 readers
1258 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

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 10 points 4 days ago* (last edited 3 days ago) (3 children)

I also am not familiar with javascript anymore....precisely because of this, exact, insane bullshit.

B... and/or C... evaluating as FALSE are the only things that... should even kind of make sense, according to my brain.

Though at this point in my life, I have unironically had a good number of concussions and contusions, so ... well you'd think that would help with JS development.

Javascript is insanity, and I am still convinced it is at least 40% responsible for Notch losing his goddamned mind.

'null' is somehow an object. because fuck you, thats why!

Is... 0 == '' ... is that two single quotes ' ' ?

Or one double quote " ?

If... it is one double quote... that wouldn't even evaluate, as it would just be an empty string without a defined end...

But if it was two single quotes... that would just be a proper empty string... and because of forced type coercion, both 0 and '' are FALSE when compared with ==, but not when compared with ===, because that ignores forced type coercion...

https://www.w3docs.com/snippets/javascript/when-to-use-double-or-single-quotes-in-javascript.html

Oh my fucking god WHY?!

Just fucking use one special character to delimit strings!

Don't have two that don't work together and also behave differently even when you pick just one of them... GraaaghhH!

brb, figuring out where Larry Ellison lives...

[–] [email protected] 4 points 3 days ago* (last edited 3 days ago) (2 children)

I don't think my sanity can take all of these explanations.

Though I just spotted one that's worse than null being an object ..

typeof NaN
"number"

I mean, come on.. it's even in the fucking name!

Edit - fixed capitalisation in 'NaN'

[–] [email protected] 5 points 3 days ago

Douglas Crockford has a whole chapter of these in his latest book. There's also this classic video.

[–] [email protected] 4 points 3 days ago

Number = IEEE-754 double precision float, which includes NaN, so it makes sense

[–] [email protected] 4 points 3 days ago (1 children)

Notch? The guy who codes in java?

[–] sukhmel 3 points 3 days ago (1 children)

That's just short for JavaScript, isn't it?

[–] [email protected] 3 points 3 days ago

Java is actually twice faster cause the name is twice shorter

[–] [email protected] 2 points 3 days ago

It’s pretty easy to avoid all of these, mostly by using ===. Null being an object is annoying and is one of the reasons ‘typeof’ is useless, but there are other ways to accomplish the same thing.

JavaScript has a lot of foot guns, but it’s also used by literally everyone so there is a lot of tooling and practice to help you avoid them.