三項演算子を使うときに可読性が落ちない条件を突き詰めていくと
一重であることと
代入される部分が簡潔で統一されてることのほかに
条件部分が簡潔で統一されてることも必要だと思うんだ

18<=ageのときは性別にunknownやnewhalfが追加されたら、途端に難解になるし
age<18ではgender==='male'だけど18<=ageではchecktitle(age,gender)の戻り値だったりすると、わりとめちゃくちゃ


でもそうするとvar=(a)?a:20;みたいな条件になりがちになって
短絡評価のわかりにくさの話に戻るんだよね
$var = (expr) ?
  value1 :
  value2 ;
みたいな書き方だったら多少複雑でもいい