nullとundefinedの違い

nullは、値が何も入っていない。undefindは、定義されていなとき。

抽象的にまとめられるほど、明確に区別されない気がするので、個別に具体例を覚える。

nullは、関数の戻りねが無い場合や、例えば、取得しようとしたDOM要素が無い場合など。
undefinedは、変数、オブジェクトのプロパティが空のとき、など

http://uhyohyo.net/javascript/2_14.html
http://goo.gl/Dj4Crw

選択的代入するには

arg1 = arg1 || ‘hoge';
OR論理演算子は、左辺から評価する。左辺を評価して、trueであれば、右辺は評価しない。
だから、arg1が存在すれば、arg1の参照が代入され、存在しなければ、hogeが代入される。

http://goo.gl/ezqdg