Volvemos a la carga con la serie de artículos sobre errores comunes en Javascript. Esta vez con un error súper habitual, y es confundir undefined con null. ¡Algo que no solo ocurre en Javascript, sino también en muchos otros lenguajes de programación!
Comencemos por la base:
- En Javascript, los objetos, las variables, las propiedades y los métodos pueden ser undefined.
- Además, los objetos vacíos en Javascript pueden contener el valor null.
- Por tanto, a veces no sabemos si un objeto es vacío o no está definido.
Podemos comprobar si un objeto existe comprobando si el tipo es indefinido:
if (typeof miObjeto === "undefined"); //true
Pero no podemos comprobar si el objeto es nulo, porque arrojará un error si el objeto es indefinido:
if (myObj === null); //Error
Podríamos, entonces, comprobar si un objeto no es null y no es undefined:
if (myObj !== null && typeof myObj !== "undefined"); //Error
Pero el error se mantendría. Por tanto, lo que debemos hacer es comprobar primero si el objeto no es undefined, y después comprobar si el objeto no es nulo:
if (typeof myObj !== "undefined" && myObj !== null)
De esta manera, en caso de que el objeto sea no definido, no continúa con la comprobación, mientras que en el caso anterior podría darse el caso.
Así que, recuerda:
- No es lo mismo undefined que nulo.
- El orden de los operadores en una condición en la que está el operador AND (&&) es muy importante y puede dar lugar a resultados totalmente diferentes según cómo los ordenemos.
Y tú, cuéntanos, ¿cuáles son tus errores de programación más comunes?