¿Qué es la Coerción en Javascript?

¿Coer… qué? Coerción, bonito palabro.

Coerción se podría definir como la acción de forzar a un objeto a que se comporte como si fuera de otro tipo.

Como Javascript es un lenguaje débilmente tipado y dinámico no necesitamos especificar el tipo de dato para las variables porque el tipo está asociado al valor y no a la variable (Duck typing).

La ventaja es que podemos comprobar la existencia de un objeto mediante su valor por lo que Javascript permite implementar de forma muy sencilla algunos principios OOP (Object Oriented Programming) como sobrecargas de metodos (overload), sobreescritura de métodos (override) y polimorfismo.

Por ejemplo podemos ver en los siguientes ejemplos cómo funciona la coerción entre distintos tipos:

var var1, // -> undefined
var2 = 9;

if (v1) { } // -> undefined se evalúa como false
if (v2) { } // -> 9 se evalúa como true

if (!v1) { } // -> al negar undefined, se evalúa como true
if (!v2) { } // -> al negar 9, se evalúa como false

var v3 = !!v1; // -> convierte explícitamente undefined a false
var v4 = !!v2; // -> convierte explícitamente 9 a true

// asigna 0 si la coerción v1 es false
v1 = v1 || 0;

// ejecuta el alert si la coerción de v2 es true
v2 && alert("Hey!");

n = +"13";  //  13, type: number

n = +"0";   //   0, type: number

n = +"5px"; // NaN, type: number

Conclusión

La coerción es una de esas características de JavaScript que deberíamos conocer, de modo que entendamos correctamente los fragmentos de código y evitemos cometer errores de lógica, que suelen ser por lo general, bastante difíciles de rastrear.

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

WP Twitter Auto Publish Powered By : XYZScripts.com