Objetos de envoltura en JavaScript (Wrapper objects)

Author
By Darío Rivera
Posted on 2020-08-15 in Javascript

Las objetos de envoltura o wrapper objetos, son objetos que representan un tipo primitivo de dato. Es decir, son un tipo de referencia que envuelve un tipo primitivo. Cada tipo de dato primitivo tiene un tipo de referencia (excepto null y undefined) que lo envuelve. Veamos a continuación la siguiente tabla.

Data type Wrapper class
Boolean Boolean
Number Number
BigInt BigInt
String String
Symbol Symbol

Cada uno de estos objetos nos ayudará a convertir un valor a ese tipo específico. Esto también es conocido como coerción explícita (explicit coercion). Veamos cada una en detalle.

Boolean

Para convertir un dator a número basta utilizar el objeto Boolean y pasarle como parámetro el valor a convertir.

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

A continuación verás la conversión aplicada con este objeto a algunos valores de referencia.

Valor o TipoConversión
undefined false
null false
1 true
0 false
''false
[]true
{}true

Cualquier string distinto de vacío será interpretado como true, incluso un string con espacios.

Number

Para convertir un dato a número basta utilizar el objeto Number y pasarle como parámetro el valor a convertir.

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

A continuación verás la conversión aplicada con este objeto a algunos valores de referencia.

Valor o TipoConversión
undefined NaN
null 0
true 1
false 0
''0
[]0
{}0

Para cualquier string el wrapper object eliminará los espacios vacío antes y después del string e intentará interpretar el número resultante. Si no es posible leer el número se retornará NaN.

BigInt

Para convertir un dato a bigint basta utilizar el objeto BigInt y pasarle como parámetro el valor a convertir.

let n = '4';
let big = BigInt(n);  // 4n
typeof big;           // bigint

A continuación verás la conversión aplicada con este objeto a algunos valores de referencia.

Valor o TipoConversión
undefined Syntax error
null Syntax error
true 1n
false 0n
''0n
[]0n
{}Syntax error

Como puedes darte cuenta no en todos los casos es posible convertir a bigint. Por otro lado, Cualquier string que pueda ser interpretado como entero será convertido a BigInt.

String

Para convetir un dato a string basta utilizar el objeto Number y pasarle como parámetro el valor a convertir.

let n = '4';
let s = Number(n);  // '4'
typeof n;           // string

A continuación verás la conversión aplicada con este objeto a algunos valores de referencia.

Valor o TipoConversión
undefined "undefined"
null "null"
1 "1"
0 "0"
true"true"
false"false"
[]""
{}[Object Object]

Como ves resulta casi intuitivo saber cómo se convetirá un valor determinado a string.

Symbol

Para convetir un dato a symbol basta utilizar el objeto Symbol y pasarle como parámetro el valor a convertir.

let num = '4';
let sym = Symbol(num);  // Symbol(4)
typeof sym;             // string

A continuación verás la conversión aplicada con este objeto a algunos valores de referencia.

Valor o TipoConversión
undefinedSymbol()
nullSymbol(null)
1Symbol(1)
0Symbol(0)
trueSymbol(true)
falseSymbol(false)
[]Symbol()
{}Symbol([Object Object])

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.