JavaScript – números y fechas


En JavaScript, los números se implementan en Formato en coma flotante de doble precisión de 64 bits IEEE 754.

developer.mozilla.org

Que encontraras aquí?

En esta entrada encontraras mis apuntes relacionados con los números y las fechas de JavaScript así como sus métodos o objetos y referencias a documentación oficial.

Tipo Number


Una variable con el valor de tipo number puede almacenar un número entre ±2−1022 y ±2+1023, o aproximadamente ±10−308 a ±10+308. Pudiendo representar los valores enteros hasta ±253.

Además, number puede almacenar el valor de números decimales y almacena 4 tipos de valores simbólicos.

Tipos de valores simbólicos

  • + Infinity Representa el infinito en valor positivo.
  • – Infinity Representa el infinito en valor negativo.
  • NaN (Not-a-Number) literalmente representa que no es un numero.
  • BigInt Para representar números enteros muy grandes.

Sistemas numéricos

JavaScript es capaz de representar en number distintos sistemas numéricos, como es decimal, binario, octal, hexadecimal o Exponenciados.

Números decimales

Podemos utilizar 0 en la izquierda para definir un numero en sistema decimal pero si los números continuos son menor a 8, este será representado como un octal.

let decimal = 0888 // 888 procesado como decimal
let octal =   0777 // procesado como octal en modo no estricto (511 en decimal)

Números binarios

Para declarar un valor binario hace falta iniciar el numero con la sintaxis (0b) o (0B), el valor no variara y si algún valor siguiente no es ni 0 o 1 entonces devolverá un SyntaxError.

const cinco = 0b00000101  // 5
const unBit = 0b01  // 1

Números octales

El sistema numérico octal va desde el 0 al 7. Para que number interprete un valor como octal siempre hay que declararlo con un 0 al inicio de su valor.

var n = 010; // 8
var m = 0644; // 420

El modo estricto en ECMAScript 5 prohíbe la sintaxis octal.

En caso de querer representar números octales compatibles con ECMAScript 5 en modo estricto hay que declarar el valor con el prefijo “0o“.

var a = 0o10; // ES2015: 8

Números hexadecimales

La sintaxis para declarar un valor en hexadecimal pasa por usar el prefijo “0x” o “0X” al inicio del valor.

En caso de que el valor este fuera de rango lanzara un SyntaxError.

0xFFFFFFFFFFFFFFFFF // 295147905179352830000
0x123456789ABCDEF   // 81985529216486900
0XA                 // 10

Exponenciación de números

Podemos declarar el valor de un number en forma de potencia, para ello, nos bastara con añadir E seguido de la potencia.

const mil  = 1E3   // 1000
const dosm = 2e6   // 2000000
let diez   = 0.1e2 // 10

Objeto Number


Number es un objeto primitivo envolvente que permite representar y manipular valores numéricos cómo 37 o -9.25. El constructor Number contiene constantes y métodos para trabajar con números. Valores de otro tipo pueden ser convertidos a números usando la función Number().

Propiedades de Number

MAX_VALUE

// El número representable mas grande

let biggestNum = Number.MAX_VALUE;

// ±1.7976931348623157e+308


MIN_VALUE

// El número representable mas pequeño

let smallestNum = Number.MIN_VALUE;

// ±5e-324

NaN

// Este valor representa que no es un numero

var notANum = Number.NaN;

NEGATIVE_INFINITY

// Valor infinito negativo especial; devuelto por desbordamiento

var negInfiniteNum = Number.NEGATIVE_INFINITY;

POSITIVE_INFINITY

// Valor infinito positivo especial; devuelto por desbordamiento

var infiniteNum = Number.POSITIVE_INFINITY;

EPSILON

// Representa el valor mas pequeño entre 1 y el siguiente mayor que 1.


let a=0.1;
let b=0.2;

console.log('Contenido de la variable`a`:',a);
console.log('Contenido de la variable`b`:b);

let suma = a+b; // Resultado esperado:0.3 

console.log('Contenido de la variable`suma:',suma);
console.log(suma === 0.3);
console.log(Math.abs(a + b - 0.3 ) < Number.EPSILON);

console.log(Number.EPSILON);

Métodos de Number

parseFloat()

// Analiza un argumento de cadena y devuelve un numero de punto flotante

var numString = "143.55"
console.log(parseFloat(numString));

parseInt()

// Analiza un argumento de cadena y devuelve un entero de la raíz o base especificada.

function roughScale(x, base) {
  const parsed = Number.parseInt(x, base);
  if (Number.isNaN(parsed)) {
    return 0;
  }
  return parsed ;
}

console.log(roughScale(' 11', 3)); // output: 4

console.log(roughScale('321', 2)); // output: 0 porque el balor 321 sobrepasa al sistema binario

isFinite()

// Determina si el valor pasado es un número finito.

console.log(Number.isFinite(1 / 0));
// expected output: false

console.log(Number.isFinite(10 / 5));
// expected output: true

console.log(Number.isFinite(0 / 0));
// expected output: false

isInteger()

// Determina si el valor pasado es de tipo entero.

function fits(x, y) {
  if (Number.isInteger(y / x)) {
    return 'Fits!';
  }
  return 'Does NOT fit!';
}

console.log(fits(5, 10));
// expected output: "Fits!"

console.log(fits(5, 11));
// expected output: "Does NOT fit!"

Objeto Math


Es un objeto incorporado que tiene propiedades y métodos para constantes y funciones matemáticas. No es un objeto de función. Este no funciona con valores tipo BigInt.

Todas las propiedades y métodos de Math son estáticos. Como la constante pi o funciones matemáticas como cosenos, raíces cuadradas tangentes…

//constante pi
console.log(Math.PI);

Para mas información sobre las funciones y propiedades de Math pulsa aquí.

Objeto Date


JavaScript no dispone de un tipo de dato que almacene como tal las fechas, para ello podemos usar el objeto Date y sus métodos para trabajar con fechas y horas. Este objeto tiene una gran cantidad de métodos para establecer, obtener y manipular fechas.

En este sentido JavaScript comparte muchas similitudes con Java, pues comparte muchos de los métodos y ambos lenguajes almacenan fechas como el numero de milisegundos desde el 1 de enero de 1970 a las 00:00:00

Para declarar una fecha:

// Un conjunto de valores enteros para año, mes, día, hora, minuto y segundos.
var nacimiento = new Date(1990,10,27,23,34,12);

console.log(nacimiento)

Métodos:

Los métodos del objeto Date para manejar fechas y horas se incluyen en estas categorías generales:

  • métodos establecedores set, para configurar valores de fecha y hora en objetos Date.
  • Métodos captadores get, para obtener valores de fecha y hora de objetos Date.
  • métodos conversores to, para devolver valores de cadena de objetos Date.
  • métodos parse y UTC, para analizar cadenas de Date.

Para mas información sobre como utilizar los métodos de date pulsa aqui.

JavaScript – números y fechas

Post navigation