Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

207
Visualizações
¿El tipo de datos "indefinido" tiene solo un valor en JavaScript?

La documentación de JavaScript dice que el tipo de datos Null tiene solo un valor:

El tipo Nulo tiene exactamente un valor: nulo. Consulte nulo y Nulo para obtener más detalles.

Pero no dice que el tipo de datos undefined tenga un solo valor:

Una variable a la que no se le ha asignado un valor tiene el valor indefinido. Consulte indefinido e Indefinido para obtener más detalles.

Entonces, ¿el tipo de datos undefined tiene solo un valor o más de un valor?

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Hay exactamente un valor del tipo undefined . Hay varias cosas que pueden evaluarse como undefined , como una variable no asignada, una propiedad faltante o el operador void , entre otras:

 let x; const obj = { }; const voidReturn = void 0; console.log(typeof x, x); console.log(typeof obj, obj); console.log(typeof voidReturn, voidReturn);


Para mayor claridad, hay un valor undefined pero también existe la propiedad global undefined . A diferencia de null , en realidad es parte de window . Entonces, si el literal undefined se usa en el código, se refiere a esa propiedad:

 console.log("undefined" in window)

En el pasado era posible cambiarlo directamente window.undefined = 42; que luego produciría un resultado extraño si se usa con undefined === void 0 . La propiedad global se ha vuelto inmutable para evitar esto, sin embargo, todavía es técnicamente posible evitar la inmutabilidad y proporcionar su propio valor para undefined si oculta la propiedad:

 function foo(undefined) { console.log(undefined === 42); console.log(typeof undefined); console.log(undefined === void 0); } foo(42);

En comparación, null es una palabra clave de idioma y no se puede sobrescribir de ninguna manera.

about 4 years ago · Juan Pablo Isaza Relatório

0

En caso de duda, vaya a la especificación : :-)

El tipo indefinido

El tipo Undefined tiene exactamente un valor , llamado undefined . Cualquier variable a la que no se le ha asignado un valor tiene el valor undefined .

Entonces: el tipo Indefinido tiene solo un valor.


Debo señalar que hay dos formas para que una variable obtenga ese valor, así que tal vez esa sea la confusión. Las dos formas son:

  1. Porque la variable nunca ha tenido nada asignado (como señala la especificación).
  2. Porque a la variable se le ha asignado explícitamente undefined (directa o indirectamente).

Ejemplo:

 let a; // `a` has the value `undefined` because it has never been assigned a value console.log(typeof a); // undefined let b = undefined; console.log(typeof b); // undefined let c = void 0; console.log(typeof c); // undefined let d = (() => { })(); console.log(typeof d); // undefined const obj = {}; let e = obj.propertyThatDoesntExist; console.log(typeof e); // undefined

b , 'c', 'd' y e tienen el valor undefined porque se les ha asignado ese valor:

  • b se asigna undefined mediante el uso de la variable global undefined
  • c se asigna undefined utilizando el resultado del operador void , que siempre es undefined
  • d se asigna undefined porque se le asigna el valor de retorno de una función que nunca emite una declaración de return con un valor; la función por lo tanto devuelve el valor undefined
  • e se asigna undefined porque se le asigna el valor resultante de una expresión de acceso de propiedad ( obj.propertyThatDoesntExist ) para una propiedad que no existe; el resultado de un acceso de propiedad en una propiedad que no existe es undefined .

Esa es una lista razonable de formas en que la variable puede asignarse undefined ; Seguro que hay más, es solo una muestra.

Consulte también la respuesta posterior de VLAZ , que contiene información realmente buena. Por ejemplo, señala que null es una palabra clave, pero undefined es solo una variable global.

about 4 years ago · Juan Pablo Isaza Relatório

0

¡Buena pregunta! Tomado del libro que no conoce Javascript: indefinido es en sí mismo un valor que se usa cuando no hay valor. Es una propiedad en el objeto global.

Por ejemplo, citando el libro aquí:

 var a; typeof a; // "undefined" var b = 42; var c; // later b = c; typeof b; // "undefined" typeof c; // "undefined"

a es indefinida porque no le hemos dado un valor, pero incluso en el caso de que definamos el valor de una variable como otra variable indefinida, sigue siendo indefinida. En este caso, b y c probablemente apunten a esa propiedad en el objeto global.

Recomiendo leer los documentos de Mozilla y el capítulo de YDKJS sobre tipos y valores https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined

Tipos YDKJS

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda