The Number JavaScript object is a wrapper object allowing you to work with numerical values. A Number object is created using the Number() constructor.
new Number(value);
valueThe primary uses of the Number object are:
NaN.new operator), Number can be used to perform a type conversion.Number.EPSILONNumber.MAX_SAFE_INTEGER253 - 1).Number.MAX_VALUENumber.MIN_SAFE_INTEGER-(253 - 1)).Number.MIN_VALUENumber.NaNNumber.NEGATIVE_INFINITYNumber.POSITIVE_INFINITYNumber.prototypeNumber object.Number.isNaN()Number.isFinite()Number.isInteger()Number.isSafeInteger()-(253 - 1) and 253 - 1).Number.toInteger() Infinity), but has been removed.Number.parseFloat()parseFloat() of the global object.Number.parseInt()parseInt() of the global object.Number instancesAll Number instances inherit from Number.prototype. The prototype object of the Number constructor can be modified to affect all Number instances.
Number.prototype.toExponential()Number.prototype.toFixed()Number.prototype.toLocaleString()Object.prototype.toLocaleString() method.Number.prototype.toPrecision()Number.prototype.toSource()
Number object; you can use this value to create a new object. Overrides the Object.prototype.toSource() method.Number.prototype.toString()Object.prototype.toString() method.Number.prototype.valueOf()Object.prototype.valueOf() method.Number object to assign values to numeric variablesThe 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;
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.
Number to convert a Date objectThe 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".
Number('123') // 123
Number('12.3') // 12.3
Number('123e-1') // 12.3
Number('') // 0
Number(null) // 0
Number('0x11') // 17
Number('0b11') // 3
Number('0o11') // 9
Number('foo') // NaN
Number('100a') // NaN
| 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 |
| Desktop | ||||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
| Basic support | Yes | Yes | 1 | Yes | Yes | Yes |
EPSILON |
Yes | Yes | 25 | No | Yes | 9 |
MAX_SAFE_INTEGER |
34 | Yes | 31 | No | Yes | 9 |
MAX_VALUE |
Yes | Yes | 1 | Yes | Yes | Yes |
MIN_SAFE_INTEGER |
34 | Yes | 31 | No | Yes | 9 |
MIN_VALUE |
Yes | Yes | 1 | Yes | Yes | Yes |
NEGATIVE_INFINITY |
Yes | Yes | 1 | Yes | Yes | Yes |
NaN |
Yes | Yes | 1 | Yes | Yes | Yes |
POSITIVE_INFINITY |
Yes | Yes | 1 | Yes | Yes | Yes |
isFinite |
19 | Yes | 16 | No | 15 | 9 |
isInteger |
Yes | Yes | 16 | No | Yes | Yes |
isNaN |
25 | Yes | 15 | No | Yes | 9 |
isSafeInteger |
Yes | Yes | 32 | No | Yes | 10 |
parseFloat |
Yes | Yes | 25 | No | Yes | 9 |
parseInt |
Yes | Yes | 25 | No | Yes | 9 |
prototype |
Yes | Yes | 1 | Yes | Yes | Yes |
toExponential |
Yes | Yes | 1 | Yes | Yes | Yes |
toFixed |
Yes | Yes | 1 | Yes | Yes | Yes |
toInteger
|
No | No | 16 — 32 | No | No | No |
toLocaleString |
Yes | Yes | 1 | Yes | Yes | Yes |
toPrecision |
Yes | Yes | 1 | Yes | Yes | Yes |
toSource
|
No | No | 1 | No | No | No |
toString |
Yes | Yes | 1 | Yes | Yes | Yes |
valueOf |
Yes | Yes | 1 | Yes | Yes | Yes |
| Mobile | |||||||
|---|---|---|---|---|---|---|---|
| Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
| Basic support | Yes | Yes | Yes | 4 | Yes | Yes | Yes |
EPSILON |
Yes | Yes | Yes | 25 | Yes | 9 | Yes |
MAX_SAFE_INTEGER |
Yes | Yes | Yes | 31 | Yes | 9 | Yes |
MAX_VALUE |
Yes | Yes | Yes | 4 | Yes | Yes | Yes |
MIN_SAFE_INTEGER |
Yes | Yes | Yes | 31 | Yes | 9 | Yes |
MIN_VALUE |
Yes | Yes | Yes | 4 | Yes | Yes | Yes |
NEGATIVE_INFINITY |
Yes | Yes | Yes | 4 | Yes | Yes | Yes |
NaN |
Yes | Yes | Yes | 4 | Yes | Yes | Yes |
POSITIVE_INFINITY |
Yes | Yes | Yes | 4 | Yes | Yes | Yes |
isFinite |
Yes | Yes | Yes | 16 | Yes | Yes | Yes |
isInteger |
Yes | Yes | Yes | 16 | Yes | Yes | Yes |
isNaN |
Yes | Yes | Yes | 15 | Yes | 9 | Yes |
isSafeInteger |
Yes | Yes | Yes | 32 | Yes | Yes | Yes |
parseFloat |
Yes | Yes | Yes | 25 | Yes | 9 | Yes |
parseInt |
Yes | Yes | Yes | 25 | Yes | 9 | Yes |
prototype |
Yes | Yes | Yes | 4 | Yes | Yes | Yes |
toExponential |
Yes | Yes | Yes | 4 | Yes | Yes | Yes |
toFixed |
Yes | Yes | Yes | 4 | Yes | Yes | Yes |
toInteger
|
No | No | No | 16 — 32 | No | No | No |
toLocaleString |
Yes | Yes | Yes | 4 | Yes | Yes | Yes |
toPrecision |
Yes | Yes | Yes | 4 | Yes | Yes | Yes |
toSource
|
No | No | No | 4 | No | No | No |
toString |
Yes | Yes | Yes | 4 | Yes | Yes | Yes |
valueOf |
Yes | Yes | Yes | 4 | Yes | Yes | Yes |
| Server | |
|---|---|
| Node.js | |
| Basic support | Yes |
EPSILON |
0.12 |
MAX_SAFE_INTEGER |
0.12 |
MAX_VALUE |
Yes |
MIN_SAFE_INTEGER |
0.12 |
MIN_VALUE |
Yes |
NEGATIVE_INFINITY |
Yes |
NaN |
Yes |
POSITIVE_INFINITY |
Yes |
isFinite |
0.10 |
isInteger |
0.12 |
isNaN |
0.10 |
isSafeInteger |
0.12 |
parseFloat |
0.12 |
parseInt |
0.12 |
prototype |
Yes |
toExponential |
Yes |
toFixed |
Yes |
toInteger
|
No |
toLocaleString |
Yes |
toPrecision |
Yes |
toSource
|
No |
toString |
Yes |
valueOf |
Yes |
NaNMath global object
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number