Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.

undefined

BaselineWidely available

Resumen

La propiedad globalundefined representa el valor primitivoundefined. Es uno de losvalores primitivos de JavaScript.

Pruébalo

function test(t) {  if (t === undefined) {    return "Undefined value!";  }  return t;}let x;console.log(test(x));// Expected output: "Undefined value!"

Valor

El valor primitivoundefined.

Atributos de la propiedadundefined
SobrescribirNo
NumerableNo
ConfigurableNo

Descripción

undefined es una propiedad delobjeto global, es decir, una variable de alcance global.

En navegadores modernos (JavaScript 1.8.5 / Firefox 4+),undefined es una propiedadno-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 tipoundefined. Un método o sentencia también devuelveundefined si la variable que se está evaluando no tiene asignado un valor. Una función devuelveundefined si no se hadevuelto un valor.

Nota:Aunque es posible usarlo como unidentificador (nombre de variable) en cualquier otro ámbito que no sea el ámbito global (porqueundefined no es unapalabra reservada), hacerlo es una mala idea que provocará que tú código sea difícil de mantener y depurar.

js
//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");

Ejemplos

Igualdad estricta yundefined

Puedes usarundefined y los operadores de igualdad y desigualdad estricta para determinar si una variable tiene un valor asignado. En el siguiente ejemplo la variablex no está inicializada, y la sentenciaif se evalúa como verdadera.

js
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 estándar, ya quex == undefined también verifica six esnull, mientras que el de igualdad estricta no.null no es equivalente aundefined. Veaoperadores de comparación para más detalles.

Typeof operador yundefined

Alternativamente se puede usartypeof. Recuerda que este siempre devolverá una cadena de texto con el tipo:

js
let x;if (typeof x === "undefined") {  // se ejecutan estas instrucciones}

Una razón para usartypeof es que no devuelve un error si la variable no fue declarada.

js
// x no fue declarada antesif (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 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 alobjeto 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 operadorin, por ejemplo:

js
if ("x" in window) {  // estas instrucciones se ejecutan sólo si x está definido globalmente.}

Operador void yundefined

El operadorvoid es una tercer alternativa.

js
let x;if (x === void 0) {  // se ejecutan estas instrucciones}// y no fue declarada antesif (y === void 0) {  // lanza un ReferenceError (a diferencia de  `typeof`)}

Especificaciones

Specification
ECMAScript® 2026 Language Specification
# sec-undefined

Compatibilidad con navegadores

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp