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

194
Vistas
Explique este código de comparación de cadenas forzadas

¿Cómo leo? String comparison can be forced by: "" + a == "" + b de https://262.ecma-international.org/5.1/#sec-11.9.6 ?

  1. No sé el orden correcto para evaluar esto (izquierda-derecha o adentro-afuera)
  2. ¿Cuáles son las conversiones intermedias y los valores que conducen al resultado final?
  3. ¿Cuáles son los conceptos involucrados en esas conversiones intermedias? ¿Existen otros métodos (menos formas abreviadas como Number() en lugar de unary + ) para implementar esas conversiones y hacerlas más legibles para un principiante?
  4. ¿Cuándo se usa un patrón de este tipo (por qué forzar la comparación de cadenas, por qué forzarlo de esta manera asumiendo que hay otras formas) y hay trampas?
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

MDN tiene una tabla de precedencia de operadores .

La suma (cadena y aritmética) ocurre antes de la igualdad. En igualdad de condiciones, las cosas se hacen de izquierda a derecha.

Así dado:

 "" + a == "" + b

primero "" + a se evalúa y es equivalente a String(a) .

Luego se evalúa "" + b y es equivalente a String(b) .

Luego, los dos resultados se comparan usando == .

Se usa porque es menos para escribir que String(a) .

Si Number(a) es más legible que +a es discutible. Hay cosas que aprender acerca de ambos. Para la conversión a número también hay parseInt , parseFloat y multiplicación por 1, así que todo lo siguiente:

 parseInt(a) parseFloat(a) +a a * 1

todos podrían dar el mismo resultado (por ejemplo, donde a es una cadena entera como 10). Pero puede que no para otros valores (como '10.6'). La conversión a número también es complicada por NaN, por lo que si una o ambas expresiones se resuelven en NaN, entonces no son iguales entre sí ('porque NaN no es == o === a ningún valor, ni siquiera a sí mismo).

Que te diviertas. :-)

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