Los últimos tutoriales de desarrollo web
 

JavaScript Números


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%:

Ejemplo

var x = 0.2 + 0.1;         // x will be 0.30000000000000004
Inténtalo tú mismo "

Para resolver el problema anterior, ayuda a multiplicar y dividir:

Ejemplo

var x = (0.2 * 10 + 0.1 * 10) / 10;       // x will be 0.3
Inténtalo tú mismo "

hexadecimal

JavaScript interpreta constantes numéricas como hexadecimal si están precedidos por 0x.

Ejemplo

var x = 0xFF;             // x will be 255
Inténtalo tú mismo "

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.

Ejemplo

typeof Infinity;        // returns "number"
Inténtalo tú mismo "

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):

Ejemplo

var x = 100 / "Apple";  // x will be NaN (Not a Number)
Inténtalo tú mismo "

Sin embargo, si la cadena contiene un valor numérico, el resultado será un número:

Ejemplo

var x = 100 / "10";     // x will be 10
Inténtalo tú mismo "

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:

Ejemplo

var x = NaN;
var y = 5;
var z = x + y;         // z will be NaN
Inténtalo tú mismo "

O el resultado podría ser una concatenación:

Ejemplo

var x = NaN;
var y = "5";
var z = x + y;         // z will be NaN5
Inténtalo tú mismo "

NaN es un número, y typeof NaN devuelve el número:

Ejemplo

typeof NaN;             // returns "number"
Inténtalo tú mismo "

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»