but what if number isn’t an integer, or even a number at all? This code, and the improved code shared by the other user, could cause major problems under those conditions. Really, what you would want, is to validate that number is actually an integer before performing the modulo, and if it isn’t, you want to throw an exception, because something has gone wrong.
That’s exactly what that NPM module does. And this is why it’s not a bad thing to use packages/modules for even very simple tasks, because they help to prevent us from making silly mistakes.
oh of course there is
https://www.npmjs.com/package/is-even
(do take a look at the download stats)
And that isn’t even the worst thing about it…
The implementation looks like this:
function isEven(i) { return !isOdd(i); };
And yes, is-odd is a dependency that in turn depends on is-number…
“If it’s not an npm package it’s impossible”
- JS devs, probably
Can’t you just
return number % 2 === 0
Yeah, that’s even simpler
yup, which is why I find the download stats truly horrifying
but what if
number
isn’t an integer, or even a number at all? This code, and the improved code shared by the other user, could cause major problems under those conditions. Really, what you would want, is to validate thatnumber
is actually an integer before performing the modulo, and if it isn’t, you want to throw an exception, because something has gone wrong.That’s exactly what that NPM module does. And this is why it’s not a bad thing to use packages/modules for even very simple tasks, because they help to prevent us from making silly mistakes.
That would already cause an exception when calling the function because it has int number in the parameters
Javascript doesn’t have strongly-typed variables
ah the joys of loosely typed languages
That’s a lot of downloads