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

220
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 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