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

191
Views
Javascript nulo coalescente encadenado con "o"

Estoy haciendo uso de Javascript "??" operador para asignar un valor predeterminado cuando la variable no está definida junto con "||" cuando no quiero un valor indefinido o 0.

Por ejemplo, los siguientes preferirán "a" cuando se defina o recurrirán a "b".
Entonces preferiría 1 cuando el valor combinado no estaba definido o 0:

 var a, b; console.log((a ?? b) || 1); // prints "1"

Sin embargo, el siguiente ajuste presenta un error de compilación.
Espero que imprima "1" o "indefinido" según la precedencia de la operación:

 var a, b; console.log(a ?? b || 1); // Uncaught SyntaxError: missing ) after argument list"

Por último, esto compila y se ejecuta, pero con la advertencia de que "0" sería un valor aceptado:

 var a, b; console.log(a ?? b ?? 1); // prints "1"

¿Cuál es el matiz que me estoy perdiendo aquí?

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

0

De acuerdo con la documentación , no puede encadenar el operador coalescente nulo con AND u OR:

MDN:

No es posible combinar los operadores AND (&&) y OR (||) directamente con ??. Se lanzará un SyntaxError en tales casos.

 null || undefined ?? "foo"; // raises a SyntaxError true || undefined ?? "foo"; // raises a SyntaxError

Sin embargo, proporcionar paréntesis para indicar explícitamente la precedencia es correcto:

 (null || undefined) ?? "foo"; // returns "foo"

Encontré esta publicación de blog como un recurso útil para pensar por qué.

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!