アカウント名:
パスワード:
式と文がごっちゃになってて言語デザイン的に気持ち悪い構文だけど、コードがウダウダと長くなりそうな場面ではつい使ってしまう。
カンマ式、3項演算子もそうだけど、短絡演算子使いがち。if (a()) { b(); } else { c(); }の代わりにa() && b() || c();みたいな。
それって、b()やc()の戻り値がvoidではダメなんじゃないかな。破壊的操作を期待しているなら、if文で書いてもらった方がその意図が明確になるし、戻り値を使うなら、三項演算子の方が分かりやすいよね。
if (a()) { d = b();} else { d = c();}
よりも
d = a() ? b() : c();
の方が、この処理によってdの値が変化するということが明確だし、代入先がdからeに変わっても、1箇所書き換えるだけで済む。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
身近な人の偉大さは半減する -- あるアレゲ人
カンマ式、3項演算子の乱用 (スコア:0)
式と文がごっちゃになってて言語デザイン的に気持ち悪い構文だけど、
コードがウダウダと長くなりそうな場面ではつい使ってしまう。
Re: (スコア:0)
カンマ式、3項演算子もそうだけど、短絡演算子使いがち。
if (a()) { b(); } else { c(); }
の代わりに
a() && b() || c();
みたいな。
Re:カンマ式、3項演算子の乱用 (スコア:0)
それって、b()やc()の戻り値がvoidではダメなんじゃないかな。破壊的操作を期待しているなら、if文で書いてもらった方がその意図が明確になるし、戻り値を使うなら、三項演算子の方が分かりやすいよね。
よりも
の方が、この処理によってdの値が変化するということが明確だし、代入先がdからeに変わっても、1箇所書き換えるだけで済む。