私はもともとこのように書きました:
function foo(x) {
if(arguments[1]) {
// 何かをします..
} else {
// その他を行います。 .
}
}
ただし、パラメータがいくつ渡されても、if(arguments[1]) ステップはスキップされます。気が狂いそうになったとき、ついに成功しました。
function foo(x) {
if(arguments[1] != unknown) {
// 何かをします..
} else {
// 他のことをします..
}
}
「The Definitive Guide to Javascript」には、null と undefined は等しい場合もあれば、等しくない場合もあると書かれていたのを思い出しました。おそらくこれが当てはまります。