JavaScript 5: conversión de tipos frente a coerción de tipos
Apr 01 2023
Coerción vs Conversión
La coerción de tipos y la conversión de tipos son dos conceptos relacionados pero distintos en JavaScript. Coerción de tipo: conversión implícita de un valor de un tipo a otro.
La coerción de tipos y la conversión de tipos son dos conceptos relacionados pero distintos en JavaScript.
Coerción de tipos : conversión implícita de un valor de un tipo a otro.
Conversión de tipo : conversión explícita de un valor de un tipo a otro.
Es posible que haya notado que si agrega una cadena y un número, probablemente no obtendrá el resultado deseado. Por ejemplo:
const string = "19"
const number = 5
console.log(string + number) // Output: 195, NOT 24
Ejemplos de coerción de tipos:
- Adición de un número y una cadena: cuando agrega un número y una cadena en JavaScript, el número se convierte en una cadena y se concatena con la otra cadena. Por ejemplo,
"5" + 2dará como resultado la cadena"52". - Comparación de diferentes tipos: cuando compara valores de diferentes tipos usando el
==operador, JavaScript intentará convertir uno o ambos valores en un tipo común antes de realizar la comparación. Por ejemplo,0 == falsedevolverátrue. - Negación de un valor no booleano: cuando usa el
!operador para negar un valor no booleano, se convertirá en un valor booleano. Por ejemplo,!""regresarátrueporque una cadena vacía es falsa. - Conversión implícita a un número: cuando usa un valor que no es un número en una operación matemática, se convertirá en un número. Por ejemplo,
"5" * 2dará como resultado el número10. - Conversión implícita a un booleano: cuando usa un valor no booleano en un contexto booleano, se convertirá en un valor booleano. Por ejemplo,
if ("hello") { ... }ejecutará el código en la instrucción if porque la cadena"hello"es verdadera.
- Conversión explícita a una cadena: puede usar la
String()función para convertir un valor en una cadena. Por ejemplo,String(5)dará como resultado la cadena"5". - Conversión explícita a un número: puede usar la
Number()función para convertir un valor a un número. Por ejemplo,Number("5")dará como resultado el número5. - Conversión explícita a un booleano: puede usar la
Boolean()función para convertir un valor a un booleano. Por ejemplo,Boolean(0)dará como resultadofalse. - Conversión explícita a una matriz: puede usar el
Array.from()método para convertir un objeto iterable (como una cadena o un objeto similar a una matriz) en una matriz. Por ejemplo,Array.from("hello")dará como resultado la matriz["h", "e", "l", "l", "o"]. - Conversión explícita a una expresión regular: puede usar el
RegExp()constructor para crear un objeto de expresión regular a partir de una cadena. Por ejemplo,new RegExp("hello", "i")creará una expresión regular que coincida con la cadena"hello"sin distinción entre mayúsculas y minúsculas.
Los ejemplos de la vida real en los que la coerción de tipos y la conversión de tipos podrían ser útiles incluyen:
- Validación de la entrada del usuario : al aceptar la entrada de un usuario, es posible que deba convertir o forzar la entrada en un tipo diferente para garantizar que cumpla con ciertos requisitos. Por ejemplo, es posible que necesite convertir la entrada de un usuario de una cadena a un número antes de realizar una operación matemática en ella.
- Análisis de datos de fuentes externas : al consumir datos de una fuente externa (como una API), es posible que deba convertir o coaccionar los datos a un formato con el que su aplicación pueda trabajar. Por ejemplo, es posible que necesite analizar una cadena de fecha en un
Dateobjeto antes de usarlo en su aplicación. - Trabajar con diferentes tipos de datos : cuando trabaje con datos de diferentes tipos, es posible que deba convertir o coaccionar los datos para garantizar que se puedan usar en el contexto donde se necesitan. Por ejemplo, es posible que necesite convertir una representación de cadena de un color

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































