Conversión de tipos en JavaScript (coerción implicita y explícita)

Author
By Darío Rivera
Posted on 2020-09-06 in Javascript

La mayor parte del tiempo JavaScript realiza conversiones de tipo sin casi darnos cuenta si quiera de ello. El día de hoy, veremos estas conversiones que pasan casi sin nuestro consentimiento y otros tipos de conversiones sobre las cuáles si tenemos control.

Conversión a Strings

Esta conversión ocurre cada vez que se requiere un string en algún punto del script. Dado que javascript se encarga de realizar esta conversión suele llamarse coerción implícita (implicit coercion). Un ejemplo de esta conversión ocurre cuando intentamos sumar un entero y un número.

let a = 5;
let b = '6';
let sum = a + b;  // '56'
typeof sum;       // string

También es posible convertir explícitamente un valor a string utilizando el objeto de envoltura String. Este tipo de conversión utilizando el wrapper object suele ser llamada coerción explícita (explicit coercion).

let b = true;
value = String(b);  // now value is a string "true"
typeof value;       // string

Conversion Numérica

La conversión numérica ocurre cada vez que se requiere un número en algún punto del script. Un ejemplo de esta conversión ocurre cuando se operan matemáticamente dos strings numéricos.

let a = '3';
let b = '4';
let times = a * b;  // 12
typeof times;       // number

Sin embargo esta conversión no ocurre todo el tiempo, si intentas esto mismo con la suma verás que el resultado es diferente tal y como lo vimos en la conversión a strings.

let a = '3';
let b = '4';
let sum = a + b;  // "43"
typeof sum;       // string

Para otros tipos de datos, la conversión resulta ser similar a cómo se convertía ese tipo con el wrapper object.

undefined + 6;   // NaN, ya que undefined es NaN
null + 25;       // 25, ya que null=0
true + true;     // 2, ya que true=1

También es posible convertir explícitamente un valor a número utilizando el objeto de envoltura Number.

let c = '4';
let num = Number(c);  // 4
typeof num;           // number

Conversion a Boolean

La conversión a boolean ocurre cada vez que se requiere un booleano en algún punto del script. Un ejemplo de esta conversión puede ocurrir en las sentencias de desición.

let name = 'John Doe';
if (name) {
    console.info('Hello ' + name);
}

También es posible convertir explícitamente un valor a booleano utilizando el objeto de envoltura Boolean.

let b = 1;
let c = Boolean(b);  // true
typeof c;            // boolean

Si te ha sonado un poco raro esto de los objetos de envoltura te invito a revisar el post Objetos de envoltura en Javascript en donde podrás obtener una apreciación más completa del comportamiento de estos objetos.


Si te ha gustado este artículo puedes invitarme a tomar una taza de café

Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.