DEV Community

Discussion on: If/else or just if?

Collapse
 
tyrw profile image
Tyler Warnock

@dechamp something like:

if (typeof val === 'string') {
    return 'A'
}
if (val === null || val === undefined) {
    return 'B'
}
return val

?

Collapse
 
dechamp profile image
DeChamp

yup! that is the good stuff right there!

And based off your example I would do this...

check for no value first, save the code from type checking if it's not set.

if (!val) {
   return 'B';
}

if (typeof val === 'string') {
   return 'A';
}

return val;
Thread Thread
 
tyrw profile image
Tyler Warnock

What if val is 0 or false? 😉

Thread Thread
 
dechamp profile image
DeChamp

You have a good point, but are you expecting your system to act like that? It's very rare you need to actually be checking for that, but if you do suspect it then definitely go for the finite checking.

But then again, I love using the "joi" package for my type checking.

Thread Thread
 
tyrw profile image
Tyler Warnock

Normally no, but in this case yes. It's a bare-bones project and the code is constructing a DB query from a set of known inputs, so null and undefined get treated as null, strings get quotes around them, and everything else is passed through.