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().

Sintaxis
--------


```js
new Number(value);
var a = new Number("123"); // a === 123 es false
var b = Number("123"); // b === 123 es true
a instanceof Number; // es true
b instanceof Number; // es false
```

### Parámetros

`valor`

El valor numérico de un objeto que está siendo creado.

Descripción
-----------

Los principales usos del objeto `Number(valor)` son convertir un string u otro valor a uno de tipo numérico; si el argumento no puede ser convertido a un número, devuelve `NaN`.

### Literal syntax


```js
123; // one-hundred twenty-three
123.0; // same
123 === 123.0; // true
```

### Function syntax


```js
Number("123"); // retorna el número 123
Number("123") === 123; // retorna true

Number("unicorn"); // NaN
Number(undefined); // NaN
```

Constructor
-----------

`Number()` (en-US)

Crea un nuevo valor Numérico ( `Number` value).

Propiedades
-----------

`Number.EPSILON` (en-US)

El intervalo más pequeño entre dos números representables

`Number.MAX_SAFE_INTEGER`

El número máximo representable en JavaScript (`253 - 1`).

`Number.MAX_VALUE`

El número más grande representable.

`Number.MIN_SAFE_INTEGER` (en-US)

El número mínimo representable en JavaScript (`-(253 - 1)`).

`Number.MIN_VALUE`

El número más pequeño representable - que es el número positivo más cercano a cero (sin llegar a ser cero)-.

`Number.NaN`

Valor especial "no es número" NaN.

`Number.NEGATIVE_INFINITY`

Valor especial para representar infinitos negativos; retorno de un desborde de pila overflow.

`Number.POSITIVE_INFINITY`

Valor especial para representar infinitos positivos; retorno de un desborde de pila overflow.

`Number.prototype` (en-US)

Permite la adición de propiedades a un objeto `Number`.

Métodos
-------

`Number.isNaN()`

Determina si el valor es NaN.

`Number.isFinite()`

Determina si el valor es un numero infinito.

`Number.isInteger()`

Determina si un numero es entero.

`Number.isSafeInteger()`

Determine si el valor pasado es un entero seguro (número entre `-(253 - 1)` y `253 - 1`).

~~`Number.toInteger()` 
Obsoleto~~

~~Se usa para evaluar el valor pasado y convertirlo en un entero (or `Infinity`), pero ha sido eliminado.~~

`Number.parseFloat()`

El valor es el mismo que `parseFloat ()` del objeto global.

`Number.parseInt()`

El valor es el mismo que `parseInt()` del objeto global.

Instancias `Number`
-------------------

Todas las instancias `Number` heredan de `Number.prototype` (en-US). El objeto prototipo del constructor de `Number` puede modificarse para aceptar a todas las instancias de `Number`.

### Métodos

`Number.prototype.toExponential(fractionDigits)` (en-US)

Devuelve una cadena que representa el número en notación exponencial.

`Number.prototype.toFixed(digits)`

Devuelve una cadena que representa el número en notación de punto fijo.

`Number.prototype.toLocaleString([locales [, options]])`

Devuelve una cadena con una representación sensible al idioma de este número. Invalida el método `Object.prototype.toLocaleString ()`.

Ejemplos
--------

### Ejemplo: Utilizando el objeto `Number` para asignar valores a variables numéricas

El siguiente ejemplo utiliza las propiedades del objeto `Number` para asignar valores a varias variables numéricas:


```js
const masGrandeNum = Number.MAX\_VALUE;
const masPequeNum = Number.MIN\_VALUE;
const infinitoNum = Number.POSITIVE\_INFINITY;
const notInfinitoNum = Number.NEGATIVE\_INFINITY;
const noEsNum = Number.NaN;
```

### Intervalo de enteros para Number

El siguiente ejemplo muestra los valores máximos y minimos que pueden ser representados mediante el objeto Number:

Cuando se analizan datos que se han serializado en JSON, se puede esperar que los valores enteros que se encuentran fuera de este rango se corrompan cuando el analizador JSON los coacciona al tipo Number.

Una posible solución es usar `String` en su lugar.

Los números más grandes se pueden representar usando el tipo `BigInt` (en-US).


```js
const biggestInt = Number.MAX\_SAFE\_INTEGER; // (253 - 1) => 9007199254740991
const smallestInt = Number.MIN\_SAFE\_INTEGER; // -(253 - 1) => -9007199254740991
```

### Ejemplo: Utilizando el objeto `Number` para modificar todos los objetos `Number`

El siguiente ejemplo crea un objeto Number, miNúmero, luego añade la propiedad descripción a todos los objetos Number. Luego el valor es asignado a la propiedad descripción del objeto miNúmero.


```js
miNúmero = new Number(65);
Number.prototype.descripción = null;
miNúmero.descripción = "velocidad del viento";
```

### Utilizando el objecto `Number` para transformar un objeto `Date`

El siguiente ejemplo convierte el objeto `Date` a un valor numérico usando `Number` como función:


```js
var d = new Date("December 17, 1995 03:24:00");
console.log(Number(d));
```


Esto muestra "819199440000".

### Convierte cadenas numéricas a números


```js
Number("123"); // 123
Number("12.3"); // 12.3
Number("123e-1"); // 12.3
Number(""); // 0
Number("0x11"); // 17
Number("0b11"); // 3
Number("0o11"); // 9
Number("foo"); // NaN
Number("100a"); // NaN

Number("-Infinity"); //-Infinity
```

### Vea También

* `NaN`
* `Math`
* `Arithmetic operators`