Compartir a través de


Valores no definidos

En JScript, puede declarar una variable sin asignarle un valor. Una variable con anotaciones de tipo asume el valor predeterminado para ese tipo. Por ejemplo, el valor predeterminado de un tipo numérico es cero, y el valor predeterminado de un tipo de datos String es una cadena vacía. No obstante, una variable sin un tipo de datos especificado tiene un valor inicial undefined y un tipo de datos undefined. Del mismo modo, el código que tiene acceso a una propiedad de objeto expando o a un elemento de matriz que no existe devuelve un valor undefined.

Usar valores no definidos

Para determinar si una variable o propiedad de objeto existe, compárela con la palabra clave undefined (esto funcionará sólo con una propiedad o variable declarada), o compruebe si su tipo es "undefined" (esto funcionará hasta con una propiedad o variable no declarada). En el siguiente código de ejemplo se supone que el programador está intentando probar si la variable x se ha declarado:

// One method to test if an identifier (x) is undefined.
// This will always work, even if x has not been declared.
if (typeof(x) == "undefined"){
   // Do something.
}
// Another method to test if an identifier (x) is undefined.
// This gives a compile-time error if x is not declared.
if (x == undefined){
   // Do something.
}

Otra forma de comprobar si una propiedad de objeto o variable es undefined es compararla con el valor null. Una variable que contiene null no contiene "ningún valor" ni "ningún objeto". En otras palabras, no incluye ningún número, cadena, tipo booleano, matriz u objeto válido. Para borrar el contenido de una variable (sin eliminar la variable), asígnele el valor null. Tenga en cuenta que undefined y null se consideran iguales si se utiliza el operador de igualdad (==).

Nota

En JScript, null no se considera igual a 0 cuando se compara con el operador de igualdad. Este comportamiento es distinto de otros lenguajes, como C y C++.

En este ejemplo, se prueba el objeto obj para ver si tiene la propiedad prop.

// A third method to test if an identifier (obj.prop) is undefined.
if (obj.prop == null){
   // Do something.
}

Esta comparación será true

  • si la propiedad obj.prop contiene el valor null

  • si la propiedad obj.prop no existe

Hay otra forma de comprobar si la propiedad de un objeto existe. El operador in devuelve true si la propiedad especificada existe en el objeto proporcionado. Por ejemplo, en el siguiente código se prueba true si la propiedad prop existe en el objeto obj.

if ("prop" in someObject)
// someObject has the property 'prop'

Para quitar una propiedad de un objeto, utilice el operador delete.

Vea también

Referencia

null (Literal)

undefined (Propiedad)

in (Operador)

delete (Operador)

Otros recursos

Variables y constantes de JScript

Datos de JScript

Tipos de datos de JScript

Tipos de datos (Visual Studio - JScript)