Why does JSLint complain about "Unexpected 'else' after 'return'"?
Solution 1:
It's just telling you that else
after return
is superfluous. The following is fine:
(function (x) {
"use strict";
if (x === 1) {
return 1;
}
if (x === 2) {
return -1;
}
return 0;
}(1));
Solution 2:
What I've found w/ jslint is that if you adhere to the rules - 50% are ridiculous yet have no negative impact on your code. The other 50% ( or so ) will give you a good benefit. So do it for the other 50%. This particular example forces you to be explicit about the inverse of a condition or similar...instead of letting it be implicit with an else...same applies to if / else I mean.
Solution 3:
Its better to have a function always return something as it adds consistency. JSLint is known to be quite strict and hurting programmers' feelings. Cant help it. Personally I think version 1 is fine