JS is a language where [1,2,11].sort() returns [1,11,2].

And if you use a variable instead of a bare array, half the functions are side-effectful, as determined by coin toss.

And if you try declaring that variable with new Array(3).map() then it will ignore all 3 indices, because undefined is real enough to be enumerated, but not real enough to be iterated, because, and I cannot overstress the importance of this principle in Javascript, go fuck yourself. Go fuck yourself is why.

We wrote it wrong on purpose, as a joke.

The Wimp Lo doctrine is a valid theory for why JS is Like That.

If there’s two ways to do something, JS picks all three.

typeof(null) == ‘object’

Because some people think planning an entirely new language should take less than 2 weeks. 10 days, in this case.

See wat for more.

Array(3) doesn’t create [undefined, undefined, undefined, ]; it creates [/* hole */, /* hole */, /* hole */, ]. The holes don’t set any property on the array whatsoever, so they are skipped when iterating. How this makes sense, I can’t tell you.

Time is a flat circle

Yet the array contains exactly three nothings.

It’s like a zen koan.

Create a post

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

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.
  • 1 user online
  • 120 users / day
  • 257 users / week
  • 744 users / month
  • 3.72K users / 6 months
  • 1 subscriber
  • 1.48K Posts
  • 32.5K Comments
  • Modlog