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) )を使うこと。