Number() constructor - JavaScript | MDN

Syntax

js

new Number(value)
Number(value)

Note: Number() can be called with or without new, but with different effects. See Return value.

Parameters

value

The numeric value of the object being created.

Return value

When Number() is called as a function (without new), it returns value coerced to a number primitive. Specially, BigInts values are converted to numbers instead of throwing. If value is absent, it becomes 0.

When Number() is called as a constructor (with new), it uses the coercion process above and returns a wrapping Number object, which is not a primitive.

Warning: You should rarely find yourself using Number as a constructor.

Examples

Creating Number objects

js

const a = new Number("123"); // a === 123 is false
const b = Number("123"); // b === 123 is true
a instanceof Number; // is true
b instanceof Number; // is false
typeof a; // "object"
typeof b; // "number"

Using Number() to convert a BigInt to a number

Number() is the only case where a BigInt can be converted to a number without throwing, because it's very explicit.

js

+1n; // TypeError: Cannot convert a BigInt value to a number
0 + 1n; // TypeError: Cannot mix BigInt and other types, use explicit conversions

Note that this may result in loss of precision, if the BigInt is too large to be safely represented.

js

BigInt(Number(2n ** 54n + 1n)) === 2n ** 54n + 1n; // false

Specifications

Specification
ECMAScript® 2027 Language Specification
# sec-number-constructor

Browser compatibility

See also

Help improve MDN

Learn how to contribute

This page was last modified on by MDN contributors.