# Null checks in user validation

I would like to know an alternative, more elegant way to write the following method. I am especially not enthusiastic of the nested if statement.

hasUserSavedCredentials: function () {
result = false;
result = true;
// save in state for faster retrivial
State.xx.isSaved = result;
} else {
result = false;
State.xx.isSaved = false;
}
}
return result;
},


You can remove result = false;, as result is already false.

And to get rid of the nested statements, you could use early returns:

if (userName == null && password == null) {
return false;
}

State.xx.isSaved = false;
return false;
}
State.xx.isSaved = true;
return true;


Is it correct that when username is null, isSaved = false should not be set? Because if not, then you could just combine the two if statements, either in my example, or in yours.

Seems kind of weird that you need to check null and '' from the storage value. You would think that if the storage kept a value that it would be valid. If you can't change how that works the following code could avoid an extra if check and be a little more terse:

hasUserSavedCredentials: function () {

I am assuming storage will either return null or a string if it is found, since it null is a falsy the || will default it to ''. The extra if can be avoided because username or password will always be a string. Since there isn't an extra if check the result can be stored and used without the need for an else. Also naming result to a more descriptive value helps.