DEV Community

Discussion on: Paracetamol.js馃拪| #4: Explica este c贸digo JavaScript

Collapse
duxtech profile image
Cristian Fernando Author • Edited on

JavaScript tiene una peculiaridad que se denomina coerci贸n de tipos. Al intentar realizar alg煤n tipo de operaci贸n o comparaci贸n ambigua el lenguaje tratar谩 de realizar una conversi贸n de tipos impl铆cita para poder devolver un resultado m谩s o menos l贸gico, el problema ac谩 radica en que muchas veces el resultado obtenido ser谩 diferente al esperado.

Veamos el primer ejemplo:

console.log(false == 0)
Enter fullscreen mode Exit fullscreen mode

En javascript existen lo que denomina como valores falsy y son los siguientes:

  • 0
  • -0
  • 0n
  • false
  • null
  • undefined
  • NaN
  • Cualquier tipo de cadena vac铆a: '', ""

Todos estos valores son considerados como falsos para el lenguaje.

Como 0 es un valor falsy entonces, aunque no lo veamos, javascript hace algo como esto tras bambalinas:

console.log(false == false)
Enter fullscreen mode Exit fullscreen mode

Y como estamos usando el operador de comparaci贸n d茅bil == nos limitamos a comparar los valores mas NO los tipos de datos.
En conclusi贸n, la respuesta es true por coerci贸n de tipos

Pasemos al siguiente ejemplo:

console.log(false === 0)
Enter fullscreen mode Exit fullscreen mode

Al usar el operador estricto de comparaci贸n === comparamos tanto el valor como el tipo de dato, false es de tipo boolean y 0 es de tipo number ergo, la respuesta es false.
En otras palabras, tambi茅n es correcto afirmar que al usar el === javascript no hace coerciones de tipo, por ello es ampliamente sugerido usarlo.

Espero que la explicaci贸n sea de tu agrado.

Collapse
chema profile image
Jos茅 Mar铆a CL

Excelente