Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

226
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!