
No sé vosotros, pero me pasa mucho en #javascript que al comprobar si una variable no tiene valor null o undefined se me olvida que el valor 0 se castea a false.
Siempre tengo que comprobar que la propiedad existe y que no sea 0 si es número.
if(foo.a || foo.a === 0) {}