JavaScript tiene sólo un tipo de number .
Numbers se pueden escribir con o sin decimales.
números de JavaScript
JavaScript numbers se pueden escribir con o sin decimales:
Ejemplo
var x = 34.00; // A number with decimals
var y = 34; // A number without decimals
Adicionales pequeñas cantidades grandes o adicionales se pueden escribir con notación científica (exponente):
Ejemplo
var x = 123e5; // 12300000
var y = 123e-5; // 0.00123
Números de JavaScript son siempre de 64 bits de coma flotante
A diferencia de muchos otros lenguajes de programación, JavaScript no define los distintos tipos de números, como los enteros, corto, largo, de punto flotante etc.
números de JavaScript siempre se almacenan como números de coma flotante de doble precisión, siguiendo el estándar internacional IEEE 754.
Este formato almacena números de 64 bits, en donde se almacena el número (la fracción) en los bits 0 a 51, el exponente en los bits 52 a 62, y el signo en el bit 63:
Valor (también conocido como Fracción / Mantisa) | Exponente | Firmar |
---|---|---|
52 bits (0 - 51) | 11 bits (52 - 62) | 1 bit (63) |
Precisión
Enteros (números sin un período o notación exponencial) se consideran precisos hasta 15 dígitos.
Ejemplo
var x = 999999999999999; // x will be 999999999999999
var y = 9999999999999999; // y will be 10000000000000000
Inténtalo tú mismo " El número máximo de decimales es de 17, pero la aritmética de punto flotante no siempre es fiable al 100%:
Para resolver el problema anterior, ayuda a multiplicar y dividir:
hexadecimal
JavaScript interpreta constantes numéricas como hexadecimal si están precedidos por 0x.
Nunca escriba un número con un cero a la izquierda (como 07).
Algunas versiones de JavaScript interpretan como números octales si están escritas con un cero.
De forma predeterminada, muestra los números de Javascript como base de 10 decimales.
Sin embargo, se puede utilizar el toString() método para números de salida como base 16 (hexadecimal), base 8 (octal), o la base 2 (binario).
Ejemplo
var myNumber = 128;
myNumber.toString(16); // returns 80
myNumber.toString(8); // returns 200
myNumber.toString(2); // returns 10000000
Inténtalo tú mismo " infinito
Infinito (o -Infinity) es el valor de JavaScript devolverá si se calcula un número fuera el mayor número posible.
Ejemplo
var
myNumber = 2;
while (myNumber != Infinity) {
// Execute until Infinity
myNumber = myNumber * myNumber;
}
Inténtalo tú mismo " La división por 0 (cero) también genera Infinity:
Ejemplo
var x = 2 / 0;
// x will be Infinity
var y = -2 / 0;
// y will be -Infinity
Inténtalo tú mismo " El infinito es un número: typeOf Infinity devuelve el número.
NaN - No es un número
NaN es una palabra reservada JavaScript que indica que un valor no es un número.
Tratando de hacer operaciones aritméticas con una cadena no numérica dará lugar a NaN (Not a Number):
Sin embargo, si la cadena contiene un valor numérico, el resultado será un número:
Puede utilizar la función global JavaScript isNaN() para averiguar si un valor es un número.
Ejemplo
var x = 100 / "Apple";
isNaN(x); // returns true because
x is Not a Number
Inténtalo tú mismo " Cuidado con los NaN. Si utiliza NaN en una operación matemática, el resultado también será NaN:
O el resultado podría ser una concatenación:
NaN es un número, y typeof NaN devuelve el número:
Los números pueden ser objetos
Normalmente los números de JavaScript se crean a partir de los valores simples literales: var x = 123
Pero los números también se pueden definir como objetos con la palabra clave new: var y = new Number(123)
Ejemplo
var x = 123;
var y = new Number(123);
//
typeof x returns number
//
typeof y returns object
Inténtalo tú mismo " No crear objetos Number. Se ralentiza la velocidad de ejecución.
La new palabra clave complica el código. Esto puede producir algunos resultados inesperados:
Cuando se utiliza el == operador de igualdad, igual número se ve igual:
Ejemplo
var x = 500;
var y = new Number(500);
// (x == y) is true because x and y have equal values
Inténtalo tú mismo " Cuando se utiliza el operador de igualdad ===, igual número no son iguales, porque el operador === espera que la igualdad tanto en tipo y valor.
Ejemplo
var x = 500;
var y = new Number(500);
// (x === y) is false because x and y have different types
Inténtalo tú mismo " O aún peor. Los objetos no se pueden comparar:
Ejemplo
var x = new Number(500);
var y = new Number(500);
// (x == y) is false because objects cannot be compared
Inténtalo tú mismo " objetos de JavaScript no se pueden comparar.
Ponte a prueba con los ejercicios!
Ejercicio 1 » Ejercicio 2» Ejercicio 3 » Ejercicio 4»