Comprobación de nulo / indefinido en JavaScript

Puede este código

if (typeof foo != "undefined" && foo !== null) { }  

ser refactorizado de forma segura en este código?

if (foo != null) { }

¿Es exactamente lo mismo? (Y si no, ¿cómo es diferente?)