Get to know MDN better
Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julio de 2015.
La propiedad global undefined representa el valor primitivo undefined. Es uno de los valores primitivos de JavaScript.
El valor primitivo undefined.
| Sobrescribir | No |
| Numerable | No |
| Configurable | No |
undefined es una propiedad del objeto global, es decir, una variable de alcance global.
En navegadores modernos (JavaScript 1.8.5 / Firefox 4+), undefined es una propiedad no-configurable, no-grabable según la especificación ECMAScript 5. Aún cuando este no sea el caso, evite sobreescribirlo.
Una variable a la que no se le ha asignado valor es de tipo undefined. Un método o sentencia también devuelve undefined si la variable que se está evaluando no tiene asignado un valor. Una función devuelve undefined si no se ha devuelto un valor.
Nota: Aunque es posible usarlo como un identificador (nombre de variable) en cualquier otro ámbito que no sea el ámbito global (porque undefined no es una palabra reservada), hacerlo es una mala idea que provocará que tú código sea difícil de mantener y depurar.
Puedes usar undefined y los operadores de igualdad y desigualdad estricta para determinar si una variable tiene un valor asignado. En el siguiente ejemplo la variable x no está inicializada, y la sentencia if se evalúa como verdadera.
Nota: Aquí se debe usar el operador de igualdad estricta en lugar del operador de igualdad estándar, ya que x == undefined también verifica si x es null, mientras que el de igualdad estricta no. null no es equivalente a undefined. Vea operadores de comparación para más detalles.
Alternativamente se puede usar typeof. Recuerda que este siempre devolverá una cadena de texto con el tipo:
Una razón para usar typeof es que no devuelve un error si la variable no fue declarada.
Sin embargo, existe otra alternativa. JavaScript es un lenguaje de ámbito estático, por lo que determinar si una variable se encuentra declarada puede ser definido al ver si está declarada en el contexto que la contiene.
El alcance global está vinculado al objeto global, por lo que se puede comprobar la existencia de una variable en el contexto global comprobando la existencia de una propiedad en el objeto global, utilizando el operador in, por ejemplo:
El operador void es una tercer alternativa.
| ECMAScript® 2027 Language Specification # sec-undefined |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 11 feb 2025 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.