El problema con == es que hace "coerción de tipos". Intenta convertir los valores a un tipo común antes de comparar, y a veces hace cosas muy raras e inesperadas.
El ejemplo clásico es '5' == 5, que da true. Pero cosas como [] == false o ' == 0 también dan true, lo que puede causar bugs muy difíciles de encontrar. Usar === (comparación estricta) te evita todos esos problemas. La regla es: usa siempre === a no ser que sepas EXACTAMENTE por qué necesitas la coerción de tipos de == (pista: casi nunca la necesitas).