はてな萌え

最近になってJavaScript三項演算子(というらしい) ?: をよく使うようになった(遅っ!)。すんげー便利。
if〜else〜の代わりとして使うのかと思ったら、演算子だからもっと便利な使い方ができる。式の途中にぶち込んだりとか。
例えばこんなコードが

var list = [ "a", "b", , "d" ];
//リストからテーブルを作ってみる。
var tbody = "";
for(var i=0; i<list.length; i++){
  if(list[i]) //list[i]が空要素の場合もあるから。
    tbody = tbody + "<td>"+list[i]+"</td>";
  else
    tbody = tbody + "<td></td>";
}
// HTMLファイルには<table id="table"></table>というのがあるということで
document.getElementById("table").innerHTML = "<tr>"+tbody+"</tr>";

?:を使えばこんな感じに

var list = [ "a", "b", , "d" ];
//リストからテーブルを作ってみる。
var tbody = "";
for(var i=0; i<list.length; i++)
  tbody = tbody+"<td>" + (list[i] ? list[i] : "") + "</td">;
// HTMLファイルには<table id="table"></table>[f:id:okela:20070207200715p:image]というのがあるということで
document.getElementById("table").innerHTML = "<tr>"+tbody+"</tr>";

短くできる。短いだけじゃなくてより直感的に把握しやすい、ような気がする。把握しにくくなるんなら?:つかな無きゃ良いんだし。
なんか今まで無駄に関数作ったりブロック作ったりしてた部分がだいぶ省略できるようになった。