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));