(+x) % 2 == 0
If you forget for a second it's Javascript, the language will turn back and bite you.
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.
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.
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.
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.
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
the remainder operator should return a number or a NaN right? do we actually need the triple here?
Not really. But with JS it's better safe than sorry.
The GP's addition is unnecessary, but I fully support anyone that decides to do it.
And so wonderfully similar to the way that symbol is used in other languages as well. Gosh darn it I love JavaScript
the is_even package does not provide much worth indeed because it simply negates is_odd and thereby all its benefit.
It's dependency is_odd on the other hand provides at least some additional checks (it also checks if the value is a valid integer below the max int value)
And while I would indeed see uses for such methods (especially with the other checks, no simple oneliners) in some cases, especially in testing: This is stuff you write yourself, throw it in a e.g. NumberUtils class and everything is fine. You do never depend on an external library for that. The benefit (not spending a few seconds to write it) does not outweigh any of the drawbacks that come with external libraries.
Damn bro I haven’t seen this meme format in over 20 years! Hopefully you don’t spend all that time debugging those proprietary functions ya goof
Screw calculating values for variables, just initialize it pointing to a random memory address and get a value for free! (Assuming your program doesn't segfault).
The Power Of Math People
(those that know known those that do not know do not know, those that know wish they didn't know, those that don't know wish they knew)