Почему JSLint жалуется на "неожиданное" еще "после " возвращения"?
JSLint жалуется, что следующий (бесполезный пример) код недопустим:
(function (x) {
"use strict";
if (x === 1) {
return 1;
} else if (x === 2) {
return -1;
}
return 0;
}(1));
ошибка: Проблема в строке 4 символ 9: неожиданный 'else' после 'return'.
возвращает 1;
это серьезно предполагает, что плохо использовать операторы return внутри структуры if/else?
Он думает, что эта версия нормально:
(function (x) {
"use strict";
var returnval = 0;
if (x === 1) {
returnval = 1;
} else if (x === 2) {
returnval = -1;
}
return returnval;
}(1));
3 ответа:
это просто говорит вам, что
else
послеreturn
это лишнее. Следующее прекрасно:(function (x) { "use strict"; if (x === 1) { return 1; } if (x === 2) { return -1; } return 0; }(1));
то, что я нашел w/ jslint, заключается в том, что если вы придерживаетесь правил - 50% смешны, но не оказывают негативного влияния на ваш код. Остальные 50% (или около того ) дадут вам хорошую выгоду. Так что это для остальных 50%. Этот конкретный пример заставляет вас быть явным об обратном условии или подобном...вместо того, чтобы позволить ему быть неявным с другим...то же самое относится к if / else я имею в виду.