Tipo de datos

JavaScript acepta diferentes tipos de datos. Una expresión es cualquier conjunto valido de constantes, variables y operadores que al evaluarse dan un único valor del tipo numérico, cadena o lógico.

JavaScript es un lenguaje de tipo dinámico, lo que significa que no necesita especificar el tipo de dato a almacenar en la variable porque el motor de JavaScript lo usa dinámicamente. Debe usar var aquí para especificar el tipo de datos.

1. Numéricos

Representa valores numérico ya sea enteros o decimales. A diferencia de otros lenguajes solo existe un tipo de dato llamado numérico.

Pueden ser números enteros así:

Números
TipoDescripciónEjemplo
Decimal (base 10)dígitos de 0 a 9199
binario (base 1)dígitos 0 o 10b00000001
Octal (base 8)dígitos 0 a 70755
Hexadecimal (base 16)dígitos de 0 a F0xE477
Punto flotante3.1416, -2e4, 5e-12.
var n = 34;
var n = 34.12;
var n = 34e3;   //34000
var n = 34e-3;  //0.034

Punto flotante, puede tener un entero decimal, un punto, una fracción (otro numero decimal), un exponente que consiste en la letra e seguida de un entero, el cual puede llevar un signo (+ o -).

Propiedades de números
PropiedadesDescripción
constructor
MAX_VALUEDevuelve el mayor número posible en JavaScript
MIN_VALUEDevuelve el menor número posible en JavaScript
NEGATIVE_INFINITYRepresenta infinito negativo (devuelto en desbordamiento)
POSITIVE_INFINITYRepresenta infinito positivo (devuelto en desbordamiento)
NaNRepresenta un valor "No es un número"
prototypeLe permite agregar propiedades y métodos a un objeto
E
LN2
LN10
LOG2E
LOG10E
PIValor de pi (3.1416)
SQRT1_2
SQRT2
Métodos de números
MétodosDescripción
isFinite()Comprueba si un valor es un número finito.
isInteger(n)Comprueba si un valor es un entero.
isNaN(n)Comprueba si valor no esta definido.
isSafeInterger()Comprueba si un valor es un entero seguro
toExponential(x)Convierte un número en una notación exponencial
toFixed(x)Estable x dígitos decimal.
toLocaleString()Convierte un número en una cadena, según la configuración regional
toPrecision(x)Formatea un número a x longitud
toString(n)Convierte a cadena
valueOf()Devuelve el valor primitivo de un numero.
Number.isNaN(123);          //false
Number.isNaN(-1.23);        //false
Number.isNaN(5-2);          //false
Number.isNaN(0);            //false
Number.isNaN('123');        //false
Number.isNaN('Hola');       //false
Number.isNaN('2005/12/12'); //false
Number.isNaN('');           //false
Number.isNaN(true);         //false
Number.isNaN(undefined);    //false
Number.isNaN('NaN');        //false
Number.isNaN(NaN);          //true
Number.isNaN(0/0);          //true

2. Cadenas

También llamadas String, son cualquier cosa que este encerrado entre comillas. Pueden ser simples o dobles.

"Hola mundo"
'Enrique'

También pueden usar los siguientes caracteres:

Caracteres especiales
CarácterDescripción
\bindica un retroceso (bachspace)
\findica un avance de pagina (Form feed)
\nIndica nueva linea (New Line)
\rIndica un retorno de carro.
\tIndica un tabulador (Tab)
\"Se puede incluir comillas. Ej: "José \"Chemo\" del Solar"
\'Igual que anterior.
\\\Incluir un \ en una cadena.
\bRetroceder un espacio
\\Back slash.

En el caso de las cadenas se pueden concatenar con +

var x = '16' + 'Volvo';    //16Volvo
var x = 16 + 'Volvo';      //16Volvo
var x = 16 + 4 + 'Volvo';  //20Volvo
var x = 'Volvo' + 16 + 4;  //Volvo164
Propiedades de cadenas
PropiedadesDescripción
constructor
lengthDevuelve el largo de la cadena
prototypeLe permite agregar propiedades y métodos a un objeto
var cadena = 'JavaScript';
console.log(cadena.length);  //10
Métodos de cadenas
MétodosDescripción
charAt(pos)Devuelve el carácter en un índice (posición) especificado en una cadena:
charCodeAt(pos)Devuelve ASCII en un índice (posición) especificado en una cadena:
concat(a,b)Concatena a+b.
endsWith()
fromCharCode()
includes()
indexOf()
lastIndexOf()
localeCompare()
match()Replica n veces.
repeat(n)
replace(busca,pone)Reemplaza la primera coincidencia y distingue mayustulas/minusculas
search()
slice(inicio,fin)
split(',')Convierte una cadena en matriz
startsWith()
substring(desde,hasta)Extraer parte de la cadena
substr(desde,largo)Extraer parte de la cadena
toLocateLowerCase()
toLocateUpperCase()
toLowerCase()Convierte en minusculas.
toString()Convierte a cadena.
toUpperCase()Convierte en mayusculas.
trim()Quita los espacios blancos delante y detras
valueOf()

3. Lógicos

También llamados Booleanos, son las que toman uno de dos valores de true o false.

true
false
Propiedades boleanos
PropiedadDescripción
constructor
prototype
Métodos boleanos
MétodosDescripción
toString()
valueOf()

4. Nulos

Es cuando la variable no toma ningún valor. null

null
var persona = {nombre:'Kike',apellido:'GL',edad:65};
persona = null;   #Aun es un objeto pero esta vacio

5. Fechas

El objeto Fecha se usa para trabajar con fechas y horas.

var variable = new Date();
var variable = new Date('yyyy.mm.ddThh:MM:ss');
var variable = new Date(año,mes,dia,hora,minuto,segundo,milisegundo);
var dt = new Date();     //Fecha y hora actual
var m = new Date.now();  //Milisec desde 1-ENE-1970
var dt = new Date('1955-07-14');
var dt = new Date('2023-01-01T08:00:00');
var dt = new Date(2020,7,14,8,0,0,0.0);
Métodos de fechas
MétodosDescripción
getTime()Milisegundos desde 1-ENE-1970
getFullYear()Año (4 digitos)
getMonth()Mes (0-11)
getDate()Dia del mes (1-31)
getDay()Dia de la semana (0-6)
getHours()Hora (0-23)
getMinutes()Minuto (0-59)
getSeconds()Segundo (0-59)
getMilliseconds()Milisegundo (0-999)
getTimeOffset()
getUTCDate()
getUTCDay()
setFullYear()Año (4 digitos)
setMonth()Mes
setDate()Dia
setHours()Hora
setMinutes()Minuto
setSeconds()Segundo
setMillisends()Milisegundo
setUTCFullYear()Año UTC
setUTCMonth()Mes
setUTCDate()Dia
setUTCHours()Hora
setUTCMinutes()Minuto
setUTCSeconds()Segundo
setUTCMillisends()Milisegundo
toString()Convierte a cadena
toDateString()'Thu Apr 13 2023'
toJSON()'2023-04-13T21:37:32.730Z'
valueOf()1681421852730

6. Undefined

Es el valor de una variable que se definida, pero no inicializada.

vas persona = {nombre:'Kike',apellido:'GL',edad:67};
persona = undefined;      //Ya no existe el objeto

7. Infinity

JavaScript no da error al dividir entyre cero, en cambio el resultado es Infinity.

var x = 1/0;  //Infinity

8. Resumen

Un valor de datos primitivo es un único valor de datos simple sin propiedades y métodos adicionales.

typeof 3.14;     //Numérico
typeof 'Hola';   //Cadena
typeof true;     //Booleano
typeof x;        //Indefinido
typeof null;     //Objeto
typeof [1,2,3];  //Objeto
typeof {nombre:'Kike',edad:54};     //Objeto
typeof null;     //Objeto
typeof function ok();     //Funcion