JavaScript : 1行で、より0から遠い整数値に丸める

要するに、 0 よりも大きければ Math.ceil() を、 0よりも小さければ Math.floor() を使うわけです。

function foo(num){
  return (num>0 ? Math.ceil : Math.floor)(num);
}
//下記コードと同等
function foo2(num){
  var func; //丸めに使う関数
  if(num>0){
    func = Math.ceil;
  } else {
    func = Math.floor;
  }
  return func(num);
}
//普通はこう書くのかも。
function foo3(num){
  return num>0 ? Math.ceil(num) : Math.floor(num);
}
//普通の長いバージョン
function foo4(num){
  if(num>0){
    return Math.ceil(num);
  }else{
    return Math.floor(num);
  }
}

ポイントは、「関数を使い分け」るのではなく「関数を選び分け」ている事。
メリットを強いて言えば、同じ引数を2度書かずに済むことでしょうか。 floor, ceil では引数が1つなのでメリットは活きないですが、多くのあるいは複雑な引数を取る関数を使い分ける場合には、引数の修正が必要になっても修正が1箇所で済むから楽かもしれません。
可読性の低下のほうが問題かもしれませんけど。