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

224
Views
¿Cuál es la diferencia en usar else-if vs o en JavaScript?

Estaba creando un juego de piedra, papel o tijera para poner a prueba mi conocimiento de las funciones. Había escrito este código para ver si el usuario había dado una entrada válida de piedra, papel o tijera:

 const getUserChoice = userInput => { userInput = userInput.toLowerCase(); if(userInput === 'rock'){ return userInput; } else if(userInput === 'paper') { return userInput; } else if(userInput === 'scissor'){ return userInput; } else { console.log('Invalid Option'); } };

Cuando probé la última declaración else haciendo un console.log así:

 console.log(getUserChoice('water'));

Imprimió roca en lugar de imprimir "Opción no válida".

Cuando revisé la solución vi esto:

 if (userInput === 'rock' || userInput === 'paper' || ... ) { return userInput; } else { console.log('Error!'); }

Entonces, ¿cuál es la diferencia entre usar un else-if para realizar esta tarea y usar el || ¿operador?

Editar: cometí un error al usar = en lugar de ===, por lo que se solucionó, pero aún me gustaría saber si hay alguna diferencia y cuál es más eficiente para casos de uso particulares.

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

0

El problema es con el operador = vs === . === se usa para verificar la igualdad y = es para la asignación.

Cuando escribe if(userInput = 'rock') significa que a userInput se le asigna el valor de rock . Lo que realmente quieres es if(userInput === 'rock')

En cuanto a la || operador (también llamado OR), lo que sucede es una operación de cortocircuito. Si escribes A || B || C , ocurre lo siguiente:

  1. Se evalúa A. Si value es true , B y C no se evalúan.
  2. Si A es false , entonces se evaluated B.
  3. Si B es verdadero, entonces C no se evalúa.
  4. De lo contrario, se evalúa C y se devuelve el valor de C.
about 4 years ago · Juan Pablo Isaza Report

0

No hay diferencia funcional entre usar || y usando if / else .

En JavaScript, el || El operador funciona así:

por a || b , comprueba si a es veraz . En caso afirmativo, resuelva a a . De lo contrario, resuelva a b .

Ahora, como habrás notado, la redacción de eso es bastante idéntica a cómo describirías el comportamiento de un bloque condicional if / else . Funcionalmente, no hay diferencia en el comportamiento.

En una nota relacionada, el operador && funciona de manera similar, excepto que solo si a es verdadero, a && b se resolverá en b . Si alguna vez observa el código minimizado, a veces verá que && se usa para reemplazar una declaración if , porque a && b es funcionalmente idéntico a if (a) { b; } pero ocupa menos caracteres.

No recomendaría usar ese enfoque en código no minificado, ya que definitivamente es más difícil de seguir, pero ocupa menos caracteres sin funcionar de manera diferente, razón por la cual los minificadores lo usan. Algo similar a cómo a menudo usan !0 en lugar de true .

about 4 years ago · Juan Pablo Isaza Report

0

La diferencia es que la declaración if else solo se comprueba/ejecuta si los if/if else anteriores son falsos. La declaración o ( || ) es verdadera si cualquiera de las condiciones individuales es verdadera

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!