尋常でないもふもふ

a software engineer blog

JavaScript糞Tips

JSのよくあるスニペット集。JS 初心者が初見で???となるコード達。

条件式に変数をそのまま入れて存在チェック

undefined や null は、false として判定される仕様を利用したやり方。

var unixtime = function(date) {
  if (date) {
    return date.getTime();
  }
  return new Date().getTime();
}

論理OR演算子を利用した変数の初期化

引数未指定(= undefined)の場合は空の配列をデフォルト値として扱わせる。型エラーで処理が止まらないように、最低限動くようにするためのやり方。

var print = function(list) {
  list = list || [];
  for (var i = 0, len = list.length; i < len; i++) {
    console.log(list[i]);
  }
}

indexOf に ~(チルダ)を使って boolean のように判定

チルダはビット反転演算子。-1 のときは 0 になるので JavaScript 的に false と判定される。
if (text.indexOf('hello') !== -1) と書くのはダルいし、Express などのメジャーなライブラリでも使われてるので気にせず常用すればいい。contains メソッド実装済ならこんなことしなくて済むのに。

var text = 'hello, world';
if (~text.indexOf('hello')) {
  console.log('含む');
} else {
  console.log('含まない');
}