You are viewing a single thread.
View all comments View context
28 points
(+x) % 2 == 0

If you forget for a second it’s Javascript, the language will turn back and bite you.

permalink
report
parent
reply
3 points

what does the +x do.

permalink
report
parent
reply
6 points

It makes sure x is a number.

permalink
report
parent
reply
9 points

what a wonderful and beautiful language. i’m so glad i asked

permalink
report
parent
reply
5 points

I am not good friends with js, what did I miss?

permalink
report
parent
reply
7 points

This evaluates to NaN for some reason:

'10' % 0

Since JS doesn’t really differentiate strings from numbers, except on the places it does, it makes sense to make sure you are working with numbers.

permalink
report
parent
reply
2 points
*

Oh right that. I guess I was visualizing a scenario where you already checked for it being a number, such as a Number.isInteger(x)

also, that suprises me a lot, you’d think this is one of the places where it treats stuff as numbers

permalink
report
parent
reply
6 points

Not a JS dev either but ===.

Not really sure what the (+x) is about

permalink
report
parent
reply
1 point

the remainder operator should return a number or a NaN right? do we actually need the triple here?

permalink
report
parent
reply
14 points

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.

permalink
report
parent
reply
5 points

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.

permalink
report
parent
reply
5 points

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.

permalink
report
parent
reply
2 points

We wrote it wrong on purpose, as a joke.

permalink
report
parent
reply
8 points

(+x) % 2 === 0

permalink
report
parent
reply

Programmer Humor

!programmerhumor@lemmy.ml

Create 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.

Community stats

  • 6.8K

    Monthly active users

  • 1.4K

    Posts

  • 32K

    Comments