Coerción en JavaScript

Introducción Link to heading

La coerción es un proceso fundamental en JavaScript que se encarga de convertir un valor de un tipo de dato a otro. Existen dos tipos de coerción:

Coerción implícita: Link to heading

  • Es la forma en que JavaScript convierte automáticamente un valor para que pueda ser utilizado en una operación.
  • El tipo de dato resultante depende del operador utilizado y de los tipos de datos de los operandos.

Ejemplos: Link to heading

Concatenación: Link to heading
const a = 4 + "7"; // Converts to "47" (concatenation)

typeof a; // "string"
Multiplicación: Link to heading
const a = 4 * "7"; // Converts to 28 (multiplication)

typeof a; // "number"

Coerción explícita: Link to heading

  • Es la forma en que nosotros forzamos la conversión de un valor a un tipo de dato específico.
  • Se utiliza la función String() para convertir a cadena de texto y Number() para convertir a número.

Ejemplos: Link to heading

const a = 20;

const b = a + ""; // Convert to "20" (concatenation)

console.log(b); // "twenty"

typeof b; // "string"

const c = String(a); // Explicitly converted to "20"

console.log(c); // "twenty"

const d = Number(c);

typeof d; // "number"

Tabla de coerción: Link to heading

Operador Operandos Resultado
+ String + String Concatenación
+ String + Number Concatenación
+ Number + String Concatenación
+ Number + Number Suma
- Number - Number Resta
* Number * Number Multiplicación
/ Number / Number División
== Cualquier tipo Comparación de valores (no tipos)
=== Cualquier tipo Comparación de valores y tipos

Recomendaciones: Link to heading

  • Es importante comprender cómo funciona la coerción para evitar errores inesperados en el código.
  • Se recomienda utilizar la coerción explícita cuando sea necesario para evitar ambigüedades.
  • Se puede utilizar la herramienta typeof para verificar el tipo de dato de una variable.

¡Sigue aprendiendo sobre coerción para escribir código JavaScript más preciso y confiable!

<< Hoisting en JavaScript Valores truthy y falsy en JavaScript >>