JSLint complains that the following (useless example) code is invalid:
(function (x) { "use strict"; if (x === 1) { return 1; } else if (x === 2) { return -1; } return 0; }(1));
Error: Problem at line 4 character 9: Unexpected 'else' after 'return'.
return 1;
Is it seriously suggesting that it's bad to use return statements inside an if/else structure?
It thinks this version is fine:
(function (x) { "use strict"; var returnval = 0; if (x === 1) { returnval = 1; } else if (x === 2) { returnval = -1; } return returnval; }(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));
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With