Ответ 1
Это просто говорит вам, что else
после return
лишний. Хорошо:
(function (x) {
"use strict";
if (x === 1) {
return 1;
}
if (x === 2) {
return -1;
}
return 0;
}(1));
JSLint жалуется, что следующий (бесполезный пример) код недействителен:
(function (x) {
"use strict";
if (x === 1) {
return 1;
} else if (x === 2) {
return -1;
}
return 0;
}(1));
Ошибка: Проблема с символом строки 4: Неожиданное "else" после "return".
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));
Это просто говорит вам, что else
после return
лишний. Хорошо:
(function (x) {
"use strict";
if (x === 1) {
return 1;
}
if (x === 2) {
return -1;
}
return 0;
}(1));
Что я нашел w/jslint, так это то, что если вы придерживаетесь правил - 50% смешны, но не оказывают негативного влияния на ваш код. Другие 50% (или около того) дадут вам хорошую выгоду. Так сделайте это для других 50%. Этот конкретный пример заставляет вас быть явным о обратном к условию или подобному... вместо того, чтобы позволить ему быть неявным с else... то же самое относится к if/else, который я имею в виду.
Лучше иметь функцию всегда возвращать что-то, поскольку она добавляет последовательность. Известно, что JSLint является довольно строгим и ущемляет чувства программистов. Не могу помочь. Лично я думаю, что версия 1 прекрасна.