Está en la página 1de 4

Tipos de datos usados en JavaScript

JavaScript es un lenguaje de tipado débil o dinámico. Esto significa que no es necesario declarar el tipo
de variable antes de usarla. El tipo será determinado automáticamente cuando el programa comience a
ser procesado. Esto también significa que puedes tener la misma variable con diferentes tipos:

var ale = 42; // ale es ahora un Number

var ale = "Alejandro"; // ale es ahora un String

var ale = true; // ale es ahora un Boolean

Tipos de datos

La última definición del estándar ECMAScript define siete tipos de datos:

Seis tipos de datos que son primitives:

Boolean

Null

Undefined

Number

String

Symbol (nuevo en ECMAScript 6)

y Object

Valores primitivos

Todos los tipos excepto los objetos definen valores inmutables (valores que no pueden ser cambiados).
Por ejemplo, y a diferencia de C, los Strings son inmutables. Hacemos referencia a valores de estos tipos
como "valores primitivos".

Tipo Boolean

Boolean representa una entidad lógica y puede tener dos valores: true, y false.
Tipo Null

El tipo Null tiene exactamente un valor: null. Consultar null y Null para más detalles.

Tipo Undefined

Una variable a la cual no se le haya asignado valor tiene entonces el valor undefined. Consultar
undefined y Undefined para más detalles.

Tipo Number

De acuerdo al standard ECMAScript, sólo existe un tipo numérico: el valor de doble precisión de 64-bits
IEEE 754 (un número entre -(253 -1) y 253 -1). No existe un tipo específico para los números enteros.
Adicionalmente a ser capaz de representar números de coma flotante, el tipo número tiene tres valores
simbólicos: +Infinity, -Infinity, and NaN (Not A Number o No Es Un Número).

Para chequear valores mayores o menores que +/-Infinity, puedes usar las constantes
Number.MAX_VALUE o Number.MIN_VALUE y comenzando con ECMAScript 6 también es posible
chequear si un número está en el rango de coma flotante de doble precisión usando
Number.isSafeInteger() así como Number.MAX_SAFE_INTEGER y Number.MIN_SAFE_INTEGER. Fuera de
este rango los números en javascript ya no son seguros de manipular.

El tipo número sólo tiene un valor entero que cuenta con dos representaciones: 0 es representado como
-0 y +0. ("0" es un alias +0). Esto casi no tiene ningún impacto. Por ejemplo +0 === -0 es true. Sin
embargo, es posible notar esto cuando se divide por cero:

> 42 / +0

Infinity

> 42 / -0

-Infinity

A pesar de que un número generalmente sólo representa su valor, JavaScript cuenta con operadores
binarios. Estos pueden ser usados para representar varios valores Boolean en un mismo número usando
máscaras de bits. Esto usualmente es considerado una mála práctica , sin embargo, JavaScript no ofrece
maneras de representar un conjunto de valores Booleans (como un arreglo de Booleans o un objeto con
valores Boolean asignados a sus propiedades). Usar máscaras de bits también tiende a volver el código
más difícil de leer, entender y mantener. Puede ser necesario usar tales técnicas en ambientes muy
restringidos, como cuando se intenta lidiar con la limitación de almacenamiento local o en casos
extremos cuando cada bit que se transmite por la red cuenta. Esta técnica solo debería ser considerada
como un último recurso para optimizar tamaño.

Tipo String

El tipo String de Javascript es usado para representar datos textuales o cadenas de caracteres. Es un
conjunto de "elementos", de valores enteros sin signo de 16 bits. Cada elemento ocupa una posición en
el String. El primer elemento está en el índice 0, el próximo está en el índice 1, y así sucesivamente. La
longitud de un String es el número de elementos en ella.

A diferencia de lenguajes como C, los strings en JavaScript son immutables. Esto significa que una vez
que una cadena de caracteres es creada no es posible modificarla. Sin embargo es posible crear otra
basandose en una operación de la cadena original. Por ejemplo:

Un fragmento de la cadena original seleccionando letras individuales u usando String.substr().

Una concatenación de dos cadenas usando el operador de concatenacion (+) o String.concat().

Ten cuidado de no "convertir a cadenas" tu código!

Puede ser tentador usar cadenas para representar datos complejos. Hacerlo trae beneficios a corto
plazo:

Es muy sencillo construir cadenas complejas con concatenación.

Las cadenas de caracteres son fáciles de debuguear (lo que se imprime es siempre lo que contiene la
cadena).

Las cadenas son el denominador común de muchos APIs (campos de entrada, valores de
almacenamiento local, respuestas XMLHttpRequest cuando se usa responseText, etc.) y puede ser
tentador trabajarlo todo sólamente con cadenas de caracteres.

Con convenciones es posible representar cualquier estructura de datos en una cadena. Esto no
necesariamente lo convierte en una buena idea. Por ejemplo, con un separador se pudiera simular una
lista (un arreglo de JavaScript sería mas apropiado). Desafortunadamente cuando el separador es usado
en uno de los elementos de la lista, entonces esta se rompe, habría que escoger entonces un caracter de
escape. Todo esto crea un costo innecesario que hay que mantener.

Usa cadenas para datos textuales. Cuando quieras representar datos complejos, procesa las cadenas y
usa la abstracción apropiada.

Tipo Symbol

El Symbol es un nuevo tipo en JavaScript introducido en la versión ECMAScript Edition 6. Un Symbol es


un valor primitivo único e inmutable y puede ser usado como la clave de una propiedad de un Object
(ver debajo). En algunos lenguajes de programación, los Symbols son llamados átomos. Se pueden
comparar con enumeraciones de nombres (enum) en C. Para más detalles consultar Symbol y el objeto
envoltura Symbol en JavaScript.

También podría gustarte