Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

270
Vistas
¿Por qué la desestructuración en booleano funciona en javascript?

por qué desestructurar un booleano está funcionando. Por ejemplo

 const condition = true const toto = { name: 'toto' } const other = { other: 'other', ...condition && toto } console.log({ other }) // { other: 'other', name: 'toto' } const falseCondition = false const otherWithoutToto = { other: 'other', ...falseCondition && toto } console.log({ otherWithoutToto }) // { other: 'other' }

En el caso de falso booleano, no agregamos propiedad, de lo contrario lo haremos. En realidad, está funcionando bien, pero alguien puede explicarme por qué es posible.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Lo que estás usando aquí no es la desestructuración , es la propagación de la propiedad del objeto. Requiere que la expresión del lado derecho (RHS) de ... se evalúe como un objeto o algo que se pueda convertir en uno (con excepciones para null e undefined ). Luego toma las propiedades enumerables propias del objeto ylas copia en el objeto que se está creando. En el caso de su ejemplo, pueden ocurrir dos posibilidades para el siguiente código:

 ...(condition && toto)
  1. condition es true , por lo que la expresión anterior se evalúa como el objeto toto . No se evalúa como un valor booleano, sino como el último valor verdadero, que en su caso es el objeto toto . La sintaxis de distribución de propiedades del objeto toma las propiedades enumerables propias del objeto y las agrega al objeto que se está creando.

  2. la condition es false , por lo que la expresión anterior se evalúa como el valor false . Esto significa que JavaScript trata el código anterior como ...false . Como false es una primitiva y no un objeto, JavaScript intenta convertirlo en uno envolviéndolo en un objeto booleano :

     ...new Boolean(false)

    ahora que el RHS de ... se ha convertido en un objeto, JavaScript toma las propiedades enumerables propias del objeto booleano y las agrega al objeto que se está creando. Como el booleano no tiene propiedades propias que sean enumerables, no se agrega nada al objeto creado.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda