¡Buen dato Panino

!
Aunque yo siempre suelo comparar con undefined si esa variable ha sido inicializada ya, entonces no da error:
Código PHP:
var algo;
try{
if(algo==undefined){
alert("Se podía comparar sin problemas, estaba declarada");
}
} catch(e){
e=e.description || e.message; alert(e);
}
Ya que estamos aquí, me gustaría que alguien me explicara por qué en este código siempre se declara la variable
algo, entre en el condicional o no:
Código PHP:
if( window.confirm("¿La declaramos?") ) {
var algo;
}
try{
if(algo==undefined){
alert("Se podía comparar sin problemas, estaba declarada");
}
} catch(e){
e=e.description || e.message; alert(e);
}
Ocurre tanto en IE6 como en FF2...
Saludos.