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

216
Vistas
¿Por qué los parámetros de declaración IF no detectan los errores de tipo en JavaScript?

¿Por qué los operadores de comparación no consideran que las cadenas vacías o los números no enteros sean errores?

Ejemplo:

 var x = “”; if (x>=1 && x<=10){ console.log(x); //validation code: error is expected to be thrown as variable x is not an integer } else { console.log(“Error: ” + x); }

Lenguaje de codificación: JavaScript (vainilla)
Nivel de habilidad: Principiante
Editor: Código de Visual Studio
Sistema operativo: Windows 7

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Del MDN : "JavaScript es un lenguaje dinámico y de tipo flexible. Las variables en JavaScript no están directamente asociadas con ningún tipo de valor en particular, y cualquier variable puede tener asignados (y reasignados) valores de todos los tipos".

En el caso de las comparaciones, esto tiene un efecto secundario : "En la mayoría de los casos, si los dos operandos no son del mismo tipo, JavaScript intenta convertirlos a un tipo apropiado para la comparación".

Al comparar una cadena con un número, Javascript intentará convertir esa cadena en un valor numérico para la comparación. Se considera que las cadenas vacías tienen el valor numérico 0 .

Si separa su declaración if en dos comparaciones separadas, verá que:

x >= 1 es false (porque 0 es menor que 1 )
x <= 10 es true (porque 0 es menor o igual que 10 )

Esta conversión de tipo implícita es la razón por la que no obtendrá un error de tipo. Pero dado que ambas condiciones de su declaración if no pueden ser true al mismo tiempo para una cadena vacía, obtendrá el error que registra desde la rama else .

about 4 years ago · Juan Pablo Isaza Denunciar

0

En mi opinión, el valor de x es similar a NULL y los operadores de comparación no consideran la condición x >=1 && x<=10 como comparación con NULL. Nuevamente, es solo mi opinión.

 var x = “”; // x is similar to NULL here if (x>=1 && x<=10){ console.log(x); //validation code: error is expected to be thrown as variable x is not an integer } else { console.log(“Error: ” + x); } here
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