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.
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í:
| Tipo | Descripción | Ejemplo |
|---|---|---|
| Decimal (base 10) | dígitos de 0 a 9 | 199 |
| binario (base 1) | dígitos 0 o 1 | 0b00000001 |
| Octal (base 8) | dígitos 0 a 7 | 0755 |
| Hexadecimal (base 16) | dígitos de 0 a F | 0xE477 |
| Punto flotante | 3.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 | Descripción |
|---|---|
| constructor | |
| MAX_VALUE | Devuelve el mayor número posible en JavaScript |
| MIN_VALUE | Devuelve el menor número posible en JavaScript |
| NEGATIVE_INFINITY | Representa infinito negativo (devuelto en desbordamiento) |
| POSITIVE_INFINITY | Representa infinito positivo (devuelto en desbordamiento) |
| NaN | Representa un valor "No es un número" |
| prototype | Le permite agregar propiedades y métodos a un objeto |
| E | |
| LN2 | |
| LN10 | |
| LOG2E | |
| LOG10E | |
| PI | Valor de pi (3.1416) |
| SQRT1_2 | |
| SQRT2 |
| Métodos | Descripció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
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:
| Carácter | Descripción |
|---|---|
| \b | indica un retroceso (bachspace) |
| \f | indica un avance de pagina (Form feed) |
| \n | Indica nueva linea (New Line) |
| \r | Indica un retorno de carro. |
| \t | Indica un tabulador (Tab) |
| \" | Se puede incluir comillas. Ej: "José \"Chemo\" del Solar" |
| \' | Igual que anterior. |
| \\\ | Incluir un \ en una cadena. |
| \b | Retroceder 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 | Descripción |
|---|---|
| constructor | |
| length | Devuelve el largo de la cadena |
| prototype | Le permite agregar propiedades y métodos a un objeto |
var cadena = 'JavaScript'; console.log(cadena.length); //10
| Métodos | Descripció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() |
También llamados Booleanos, son las que toman uno de dos valores de true o false.
true false
| Propiedad | Descripción |
|---|---|
| constructor | |
| prototype |
| Métodos | Descripción |
|---|---|
| toString() | |
| valueOf() |
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
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 | Descripció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 |
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
JavaScript no da error al dividir entyre cero, en cambio el resultado es Infinity.
var x = 1/0; //Infinity
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