私は 1 年前に Java などの古典的な OO 言語から JavaScript に移行しました。次のコードは Java では絶対に推奨されません (正しくもありません)。
if(dayNumber = getClickedDayNumber(dayInfo))
{
alert("day number found : " + dayNumber);
}
function getClickedDayNumber(dayInfo)
{
dayNumber = dayInfo.indexOf("fc-day");
if(dayNumber != -1) //substring found
{
//normally any calendar month consists of "40" days, so this will definitely pick up its day number.
return parseInt(dayInfo.substring(dayNumber+6, dayNumber+8));
}
return false;
}
基本的に、if 条件文で変数に値を割り当て、割り当てられた値をブール値であるかのようにすぐにチェックできることが分かりました。
より安全を期すために、私は通常、これを 2 行のコードに分割し、最初に割り当ててから変数をチェックしますが、これを発見したので、経験豊富な JavaScript 開発者の目から見て、これが良い方法なのかどうか疑問に思っています。
ベストアンサー1
お勧めしません。問題は、値を比較しようとして、または の=
代わりにsingle を使用するというよくあるエラーのように見えることです。たとえば、次のようになります。==
===
if (value = someFunction()) {
...
}
彼らがそうするつもりだったのか、あるいはこれを書こうとしていたのかは分かりません。
if (value == someFunction()) {
...
}
本当にその場で割り当てを実行したい場合は、明示的な比較も実行することをお勧めします。
if ((value = someFunction()) === <whatever truthy value you are expecting>) {
...
}