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

107
Views
Asignación de cortocircuito con primer valor predeterminado

Lo que quiero es algo como lo siguiente:

 let x=32 let y=x===32 ?: 7;

Mi ejemplo de la vida real sería más como el siguiente:

 inlineFunction(parameterWithLongNameIAmTesting===20000?parameterWithLongNameIAmTesting:anotherLongNameVariable);

Básicamente cortocircuitando el ternario. Quiero que y sea igual a x si, y solo si, x === 32. En el caso anterior, el valor asignado a y sería 32. Sin embargo, si hubiera asignado x igual a 50 o cualquier otra cosa, entonces y sería igual a 7.

¿Hay una forma integrada en javascript para hacer esto?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Usarías 32 o x como el segundo operando:

 let y = x === 32 ? x : 7;

Re:

La razón por la que busco esto es que en la situación de la vida real que estoy usando, la expresión real se vería así:

 inlineFunction(parameterWithLongNameIAmTesting===20000?parameterWithLongNameIAmTesting:anotherLongNameVariable);

Simplemente se ve muy desordenado de esa manera.

Si es solo el desorden, puede formatearlo más claramente (en mi humilde opinión) ( SharedRory también hace esta sugerencia ):

 inlineFunction( parameterWithLongNameIAmTesting === 20000 ? parameterWithLongNameIAmTesting : anotherLongNameVariable );

O si no le gustan los nombres largos repetidos, puede usar una const local:

 const x = parameterWithLongNameIAmTesting; inlineFunction(x === 20000 ? x : anotherLongNameVariable);

¿Hay una forma integrada en javascript para hacer esto?

Nada más que el operador condicional anterior, o un if / else . Dijiste en un comentario que pensabas que se había agregado algo. Podría estar pensando en un encadenamiento opcional ( let y = something?.prop; ) que provoca un cortocircuito si something es null o undefined , lo que resulta en undefined en lugar del error que sería something.prop . Pero eso no se aplica aquí.

about 4 years ago · Juan Pablo Isaza Report

0

Dado que agregó un ejemplo, es común ver lo siguiente en una gran cantidad de código porque es fácil de leer y no todo en una sola línea.

 inlineFunction( parameterWithLongNameIAmTesting === 20000 ? parameterWithLongNameIAmTesting : anotherLongNameVariable );

También los formateadores suelen hacer esto también.

about 4 years ago · Juan Pablo Isaza Report

0

No listo para usar, pero puede usar una función como

 eq = (a, b) => a === b ? a : undefined

en combinación con el operador coalescente nulo. Ejemplo:

 eq = (a, b) => a === b ? a : undefined test = 20000 defaultValue = 333 res = eq(test, 20000) ?? defaultValue console.log(res) test = 4444 defaultValue = 333 res = eq(test, 20000) ?? defaultValue console.log(res)

Como es habitual con las funciones, la ventaja es que puedes usarlas con expresiones arbitrarias, no solo con variables, por ejemplo:

 return eq(computeChecksum(file), getStoredChecksum()) ?? '<failed>'
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!