Logo de Torre de Babel
Portada Libros Diseño web Artículos Glosario RSS
Buscar

Cómo distinguir en JavaScript variables inexistentes de aquellas que no tienen valor

Como la mayoría de los lenguajes interpretados, JavaScript no exige la declaración previa de las variables que van a utilizarse en un programa, sino que éstas van creándose y destruyéndose dinámicamente a medida que es necesario. Es un mecanismo cómodo y que permite implementar una cierta funcionalidad de manera muy rápida, sin tener que preocuparse de detalles como la declaración o el tipo de las variables. A cambio, sin embargo, puede convertirse también en la fuente de muchos problemas, ya que la lectura de una variable no definida, por ejemplo en el interior de un condicional o al componer una expresión de tipo aritmético, puede pasarse por alto y llevar a un resultado inesperado.

En principio, utilizando el operador de igualdad ==, una variable sin definir pasará por ser una variable sin contenido, es decir, una variable null. Sin embargo, el operador typeof de JavaScript devuelve null para una variable definida pero a la que aún no se ha asignado un valor, mientras que para una variable sin definir devuelve undefined. Esta diferencia puede comprobarse, antes de utilizar la variable en cuestión, recurriendo al operador identidad ===, en lugar de al operador de igualdad.

Desde el momento en que una variable se define, con la palabra clave var, o bien se le asigna un valor sin que estuviese previamente definida, ya no volverá a ser undefined. Las variables declaradas con var no dejarán de existir hasta que se cierre el ámbito al que pertenecen. Las definidas de manera implícita, sin embargo, pueden ser eliminadas mediante la instrucción delete. A partir de esa eliminación, el identificador volverá a ser undefined.


Publicado el 8/3/2008

Curso de shaders

Torre de Babel - Francisco Charte Ojeda - Desde 1997 en la Web