variable validar error definida ask javascript

error - validar variable no definida javascript



Cómo establecer una var de JavaScript como indefinido (6)

Solución

Para establecer confiablemente una variable boo a undefined , use una función con una expresión de return vacía:

boo = (function () { return; })();

Después de ejecutar esta línea de código, typeof(boo) evalúa como ''undefined'' , independientemente de si la propiedad global undefined se ha establecido o no en otro valor. Por ejemplo:

undefined = ''hello''; var boo = 1; console.log(boo); // outputs ''1'' boo = (function () { return; })(); console.log(boo); // outputs ''undefined'' console.log(undefined); // outputs ''hello''

EDITAR ¡ Pero también vea la solución más simple de @ Colin!

Referencia

Este comportamiento es estándar desde ECMAScript 1. La especificación relevante establece en parte:

Sintaxis

return [no LineTerminator here] Expresión ;

Semántica

Una declaración de return hace que una función cese la ejecución y devuelva un valor a la persona que llama. Si se omite Expresión , el valor de retorno undefined está undefined .

Para ver las especificaciones originales, consulte:

Apéndice

Para completar, he adjuntado un breve resumen de enfoques alternativos a este problema, junto con objeciones a estos enfoques, basados ​​en las respuestas y los comentarios de otros respondedores.

1. Asignar undefined a boo

boo = undefined; // not recommended

Aunque es más simple asignar undefined a boo directamente, undefined no es una palabra reservada y podría reemplazarse por un valor arbitrario, como un número o cadena.

2. Eliminar boo

delete boo; // not recommended

La eliminación de boo elimina por completo la definición de boo , en lugar de asignarle el valor undefined , y solo funciona si boo es una propiedad global.

Dado:

console.log(boo); this outputs undefined

Dado:

var boo = 1; console.log(boo); this outputs 1

Después de definir boo y establecer en 1, ¿cómo puedo restablecer boo, para que console.log produzca indefinido?

Gracias


Esto funciona en Chrome JavaScript Console:

delete(boo)


Simplemente puede asignar una variable al valor de indefinido:

boo = undefined;

Alternativamente, puede usar el operador de eliminar para eliminar la variable:

delete boo;



delete boo

No use var boo = undefined . undefined es solo una variable y si alguien establece undefined = "hello" entonces recibirás hola en todas partes :)

EDITAR:

null no era lo mismo que undefined. eliminado ese bit.


var boo = 1; console.log(boo); // prints 1 boo = undefined; console.log(boo); // now undefined