6. Coerción
La coerción es la conversión automática o implícita de valores de un tipo de dato a otro.
Es el proceso de convertir un valor de un tipo de dato en otro. Por ejemplo: number a string, boolean a number, object a boolean, etc.
Coerción explícita: Hecha por el programador. Es cuando obligamos a que cambie el tipo de valor. Ejemplos:
- Number("2") → convierte el string "2" en el número 2
- String ( 3 ) → convierte el número 3 en el string "3"
- Boolean(NaN) → convierte el valor NaN en el valor false
Coerción implícita: Hecha automáticamente. Es cuando el lenguaje nos ayuda a cambiar el tipo de valor. Ejemplos:
- 6 - "1" → convierte el string " 1 " en el número 1
- if (0) { … } → convierte el número 2 en el valor false
- 3 || "hola" → convierte los valores 3 y " hola " en true
- 5 > 2 == "0" → convierte el string " 0 " en número
Valores: Truthy y Falsy
Usamos la función de JS que es Boolean() dentro del paréntesis ponemos el valor y nos dice si el mismo el False o True.
Falsy
- Boolean() —> sin ningún valor es false
- Boolean(0) —> false
- Boolean(null) —> false
- Boolean(NaN) —> false // NaN es Not and Number
- Boolean(Undefined) —> false
- Boolean(false) —> false
- Boolean("") —> false
Truthy
- Boolean(1) —> true //cualquier número que no sea igual a cero es true
- Boolean(“a”) —> true
- Boolean(" ") —> true // siendo un espacio el valor es true
- Boolean([]) —> true // un array nos da un true
- Boolean({}) —> true // un objeto nos da el valor de true
- Boolean(function() {}) —> true //una funcion tambien es true
- Boolean(true) —> true
Todo esto lo vamos a usar en condiciones esto valida si es verdadero o falso para ejecutar cierta acción.
Enlaces a documentación en Mozilla de Truthy y Falsy: