JSLintは、次の(役に立たない例)コードが無効であると不平を言っています。
(function (x) {
"use strict";
if (x === 1) {
return 1;
} else if (x === 2) {
return -1;
}
return 0;
}(1));
エラー:4行目の文字9の問題: 'return'の後に予期しない 'else'があります。
1を返します。
If/else構造内でreturnステートメントを使用するのが悪いことを真剣に示唆していますか?
このバージョンは問題ないと考えています:
(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));
Jslintで私が見つけたのは、ルールを順守した場合、50%は馬鹿げているが、コードに悪影響を与えないということです。他の50%(かそこら)はあなたに良い利益を与えます。残りの50%についても同様です。この特定の例では、条件などの逆について明示的にする必要があります... elseで暗黙的にする代わりに... if/elseに同じことが当てはまります。
関数に一貫性を持たせるため、常に何かを返すようにしておくとよいでしょう。 JSLintはかなり厳格で、プログラマーの気持ちを痛めることが知られています。それを助けることができません。個人的にはバージョン1でいいと思います