| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/undefined | [Back] [Original] |
Get to know MDN better
Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its 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.
function test(t) {
if (t === undefined) {
return "Undefined value!";
}
return t;
}
let x;
console.log(test(x));
// Expected output: "Undefined value!"
El valor primitivo undefined.
Atributos de la propiedad 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 segn la especificacin ECMAScript 5. An cuando este no sea el caso, evite sobreescribirlo.
Una variable a la que no se le ha asignado valor es de tipo undefined. Un mtodo o sentencia tambin devuelve undefined si la variable que se est evaluando no tiene asignado un valor. Una funcin 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 cdigo sea difcil de mantener y depurar.
//NO HAGAS ESTO
(() => {
const undefined = "foo";
console.log(undefined, typeof undefined);
})()(
// foo string
// registra "foo string"
(undefined) => {
console.log(undefined, typeof undefined); // foo string
},
)("foo");
undefinedPuedes 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 evala como verdadera.
let x;
if (x === undefined) {
// se ejecutan estas instrucciones
} else {
// estas instrucciones no se ejecutan
}
Nota:
Aqu se debe usar el operador de igualdad estricta en lugar del operador de igualdad estndar, ya que x == undefined tambin verifica si x es null, mientras que el de igualdad estricta no. null no es equivalente a undefined. Vea operadores de comparacin para ms detalles.
undefinedAlternativamente se puede usar typeof. Recuerda que este siempre devolver una cadena de texto con el tipo:
let x;
if (typeof x === "undefined") {
// se ejecutan estas instrucciones
}
Una razn para usar typeof es que no devuelve un error si la variable no fue declarada.
// x no fue declarada antes
if (typeof x === "undefined") {
// devuelve true
//se ejecutan estas instrucciones
}
if (x === undefined) {
// lanza un ReferenceError
}
Sin embargo, existe otra alternativa. JavaScript es un lenguaje de mbito esttico, 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:
if ("x" in window) {
// estas instrucciones se ejecutan slo si x est definido globalmente.
}
undefinedEl operador void es una tercer alternativa.
let x;
if (x === void 0) {
// se ejecutan estas instrucciones
}
// y no fue declarada antes
if (y === void 0) {
// lanza un ReferenceError (a diferencia de `typeof`)
}
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-undefined |
This page was last modified on 29 may 2026 by MDN contributors.
Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |