P126(8.2.1):関数への引数が省略されたかの判断
今までずっとtypeof()を使い、以下の様にチェックしていた。
function hoge(a) { if( "undefined" == typeof(a) ) { alert("引数省略"); } else { alert("引数あり"); } }
しかし以下の様に書ける。
function hoge(a) { if(!a) { alert("引数省略"); } else { alert("引数あり"); } }
理解はできるけど、思いつかなかった。
※注意点(追記)
省略できる引数がbool値(true || false)を受け取る仕様の場合は注意が必要。
falseが送られてきた場合、if(!a)のif文は成立してしまう。
bool値の受け取りが前提の場合にはif( "undefined" == typeof(a) )を使うこと。