# Number

Vullnetarët tanë s’e kanë përkthyer ende në Shqip këtë artikull. Merrni pjesë dhe ndihmoni të mbarohet kjo punë!
Mund ta lexoni artikullin edhe në English (US).

The `Number` JavaScript object is a wrapper object allowing you to work with numerical values. A `Number` object is created using the `Number()` constructor.

## Syntax

`new Number(value);`

### Parameters

`value`
The numeric value of the object being created.

## Description

The primary uses of the `Number` object are:

• If the argument cannot be converted into a number, it returns `NaN`.
• In a non-constructor context (i.e., without the `new` operator), `Number` can be used to perform a type conversion.

## Properties

`Number.EPSILON`
The smallest interval between two representable numbers.
`Number.MAX_SAFE_INTEGER`
The maximum safe integer in JavaScript (`253 - 1`).
`Number.MAX_VALUE`
The largest positive representable number.
`Number.MIN_SAFE_INTEGER`
The minimum safe integer in JavaScript (`-(253 - 1)`).
`Number.MIN_VALUE`
The smallest positive representable number - that is, the positive number closest to zero (without actually being zero).
`Number.NaN`
Special "not a number" value.
`Number.NEGATIVE_INFINITY`
Special value representing negative infinity; returned on overflow.
`Number.POSITIVE_INFINITY`
Special value representing infinity; returned on overflow.
`Number.prototype`
Allows the addition of properties to a `Number` object.

## Methods

`Number.isNaN()`
Determine whether the passed value is NaN.
`Number.isFinite()`
Determine whether the passed value is a finite number.
`Number.isInteger()`
Determine whether the passed value is an integer.
`Number.isSafeInteger()`
Determine whether the passed value is a safe integer (number between `-(253 - 1)` and `253 - 1`).
`Number.toInteger()`
Used to evaluate the passed value and convert it to an integer (or `Infinity`), but has been removed.
`Number.parseFloat()`
The value is the same as `parseFloat()` of the global object.
`Number.parseInt()`
The value is the same as `parseInt()` of the global object.

## `Number` instances

All `Number` instances inherit from `Number.prototype`. The prototype object of the `Number` constructor can be modified to affect all `Number` instances.

### Methods

`Number.prototype.toExponential()`
Returns a string representing the number in exponential notation.
`Number.prototype.toFixed()`
Returns a string representing the number in fixed-point notation.
`Number.prototype.toLocaleString()`
Returns a string with a language sensitive representation of this number. Overrides the `Object.prototype.toLocaleString()` method.
`Number.prototype.toPrecision()`
Returns a string representing the number to a specified precision in fixed-point or exponential notation.
`Number.prototype.toSource()`
Returns an object literal representing the specified `Number` object; you can use this value to create a new object. Overrides the `Object.prototype.toSource()` method.
`Number.prototype.toString()`
Returns a string representing the specified object in the specified radix (base). Overrides the `Object.prototype.toString()` method.
`Number.prototype.valueOf()`
Returns the primitive value of the specified object. Overrides the `Object.prototype.valueOf()` method.

## Examples

### Using the `Number` object to assign values to numeric variables

The following example uses the `Number` object's properties to assign values to several numeric variables:

```var biggestNum = Number.MAX_VALUE;
var smallestNum = Number.MIN_VALUE;
var infiniteNum = Number.POSITIVE_INFINITY;
var negInfiniteNum = Number.NEGATIVE_INFINITY;
var notANum = Number.NaN;
```

### Integer range for `Number`

The following example shows the minimum and maximum integer values that can be represented as `Number` object (for details, refer to ECMAScript standard, chapter 6.1.6 The Number Type):

```var biggestInt = 9007199254740991;
var smallestInt = -9007199254740991;
```

When parsing data that has been serialized to JSON, integer values falling out of this range can be expected to become corrupted when JSON parser coerces them to `Number` type. Using `String` instead is a possible workaround.

### Using `Number` to convert a `Date` object

The following example converts the `Date` object to a numerical value using `Number` as a function:

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

This logs "819199440000".

### Convert numeric strings to numbers

```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
```

## Specifications

Specification Status Comment
ECMAScript 1st Edition (ECMA-262) Standard Initial definition. Implemented in JavaScript 1.1.
ECMAScript 5.1 (ECMA-262)
The definition of 'Number' in that specification.
Standard
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Number' in that specification.
Standard New methods and properties added: `EPSILON`, `isFinite`, `isInteger`, `isNaN`, `parseFloat`, `parseInt`
ECMAScript Latest Draft (ECMA-262)
The definition of 'Number' in that specification.
Draft

## Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes1 Yes Yes Yes
`EPSILON` Yes Yes25 No Yes9
`MAX_SAFE_INTEGER`34 Yes31 No Yes9
`MAX_VALUE` Yes Yes1 Yes Yes Yes
`MIN_SAFE_INTEGER`34 Yes31 No Yes9
`MIN_VALUE` Yes Yes1 Yes Yes Yes
`NEGATIVE_INFINITY` Yes Yes1 Yes Yes Yes
`NaN` Yes Yes1 Yes Yes Yes
`POSITIVE_INFINITY` Yes Yes1 Yes Yes Yes
`isFinite`19 Yes16 No159
`isInteger` Yes Yes16 No Yes Yes
`isNaN`25 Yes15 No Yes9
`isSafeInteger` Yes Yes32 No Yes10
`parseFloat` Yes Yes25 No Yes9
`parseInt` Yes Yes25 No Yes9
`prototype` Yes Yes1 Yes Yes Yes
`toExponential` Yes Yes1 Yes Yes Yes
`toFixed` Yes Yes1 Yes Yes Yes
`toInteger` No No16 — 32 No No No
`toLocaleString` Yes Yes1 Yes Yes Yes
`toPrecision` Yes Yes1 Yes Yes Yes
`toSource` No No1 No No No
`toString` Yes Yes1 Yes Yes Yes
`valueOf` Yes Yes1 Yes Yes Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes4 Yes Yes Yes
`EPSILON` Yes Yes Yes25 Yes9 Yes
`MAX_SAFE_INTEGER` Yes Yes Yes31 Yes9 Yes
`MAX_VALUE` Yes Yes Yes4 Yes Yes Yes
`MIN_SAFE_INTEGER` Yes Yes Yes31 Yes9 Yes
`MIN_VALUE` Yes Yes Yes4 Yes Yes Yes
`NEGATIVE_INFINITY` Yes Yes Yes4 Yes Yes Yes
`NaN` Yes Yes Yes4 Yes Yes Yes
`POSITIVE_INFINITY` Yes Yes Yes4 Yes Yes Yes
`isFinite` Yes Yes Yes16 Yes Yes Yes
`isInteger` Yes Yes Yes16 Yes Yes Yes
`isNaN` Yes Yes Yes15 Yes9 Yes
`isSafeInteger` Yes Yes Yes32 Yes Yes Yes
`parseFloat` Yes Yes Yes25 Yes9 Yes
`parseInt` Yes Yes Yes25 Yes9 Yes
`prototype` Yes Yes Yes4 Yes Yes Yes
`toExponential` Yes Yes Yes4 Yes Yes Yes
`toFixed` Yes Yes Yes4 Yes Yes Yes
`toInteger` No No No16 — 32 No No No
`toLocaleString` Yes Yes Yes4 Yes Yes Yes
`toPrecision` Yes Yes Yes4 Yes Yes Yes
`toSource` No No No4 No No No
`toString` Yes Yes Yes4 Yes Yes Yes
`valueOf` Yes Yes Yes4 Yes Yes Yes