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

225
Vistas
¿Cuál es el nombre de este tipo de expresión en Javascript? obj[s] = ++obj[s] || 1

El ejemplo específico que tengo incrementará obj[s] si es verdadero (tiene un valor), y si es falso (aún no existe en el objeto) lo establecerá en 1 y, por lo tanto, lo agregará al objeto.

Pero lo que estoy preguntando, en general, parece:

 something = doIfTruthy || doIfFalsey

Estoy pensando que debe tener un nombre, tal como llamamos a este "operador ternario o condicional"

 something = condition? ifTrue: ifFalse

Me gustaría poder referirme a él por un nombre propio en mis notas. En este momento solo lo llamo "explotar verdad/falsedad" porque así es como lo uso.

También me pregunto cómo llamas a este tipo de expresión, porque es similar:

 something = condition && ifTrue
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede consultar esta página en MDN para obtener más información sobre los operadores, pero la esencia de lo que está preguntando es:

A || B

se llama el operador "O lógico", donde ejecutará expresiones de izquierda a derecha hasta que encuentre una verdadera, devolviendo la primera expresión verdadera.

A && B

se llama el operador "Lógico AND", donde ejecutará expresiones de izquierda a derecha hasta que encuentre una falsa, devolviendo la última expresión verdadera.

Nota al margen:

Personalmente, no recomendaría seguir los pasos del autor del código escribiendo cosas como obj[s] = ++obj[s] || 1 , ya que aunque es conciso, se necesita leer un poco para entenderlo. Considere algo como:

 obj[s] ||= 0; ++obj[s];

O:

 obj[s] = (obj[s] || 0) + 1;

O simplemente:

 if (typeof obj[s] !== 'number') obj[s] = 0; ++obj[s];
about 4 years ago · Juan Pablo Isaza Denunciar

0

para || operaciones , JS devolverá el PRIMER valor "veraz" que encuentre (leyendo de izquierda a derecha):

 var bob = false || undefined || 0 || null || "hi" // ^ ^ ^ ^ ^ // nope nope nope nope yip // // => bob = "hi" // -------------- // breaking // -------------- var bob = false || "hi" || 0 || null || undefined // ^ ^ // nope yip <-- stops here // the rest are ignored // // => bob = "hi"

Otro truco es usar && (y) para asegurarse de que algo existe antes de acceder a él.

Para las operaciones && , JS devolverá el ÚLTIMO valor "veraz" que encuentre (leyendo de izquierda a derecha).

Por ejemplo, si intenta leer una propiedad de un objeto de varios niveles.

 var obj = { foo : { bar : "hi" } } var bob = obj && obj.foo && obj.foo.bar; // ^ ^ ^ // yip yip use this // // => bob = "hi" // -------------- // breaking: // -------------- var bob = obj && obj.foo && obj.foo.sally && obj.foo.bar; // ^ ^ ^ // yip yip nope <-- stops here, // ^ and returns the last "yip" // | the rest are ignored | // '-----------------------------------------------' // // => bob = obj.foo

Ambos || y las operaciones && se leen de izquierda a derecha... por lo que puede tener cosas que normalmente generarían errores hacia el lado derecho, ya que JS simplemente dejará de leer de izquierda a derecha una vez que detecte un valor verdadero/falso.

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