深い階層のオブジェクトが存在するかどうかチェックする。

色々、やり方はあるが、最終的には以下で落ち着いた。

function isset (fn) {
    var value;
    try {
        value = fn();
    } catch (e) {
        value = undefined;
    } finally {
        return value !== undefined;
    }
};

console.log(
    isset(() => a.b.c),
    isset(() => a.b.c.d.e.f)
);

↑これはかなり優秀でa.b.c.d.reduce( (x,y) => x+y)).map( x => x*x )みたいに
メソッドチェーンでreduce mapした引数を渡してもちゃんとチェックしてくれる!!