Number() 构造函数
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Number()
构造函数创建 Number
对象。当作为函数调用时,它返回 Number 类型的原始值。
语法
参数
value
-
所创建对象的数值。
返回值
当 Number
作为构造函数调用(使用 new
)时,它创建一个 Number
对象,这个对象不是原始值。
当 Number
作为普通函数调用时,它将参数强制转换为数字原始值。BigInt 被转换为数字。如果值不能转换,则返回 NaN
。
警告:你会发现你很少会使用 Number
作为构造函数。
示例
创建 Number 对象
js
const a = new Number("123"); // a === 123 为 false
const b = Number("123"); // b === 123 为 true
a instanceof Number; // 为 true
b instanceof Number; // 为 false
typeof a; // "object"
typeof b; // "number"
使用 Number() 将 BigInt 转换为数字
Number()
是唯一可以将 BigInt 转换为数字而不抛出错误的情况,因为这是完全显式的转换。
js
+1n; // TypeError: Cannot convert a BigInt value to a number
0 + 1n; // TypeError: Cannot mix BigInt and other types, use explicit conversions
js
Number(1n); // 1
注意,如果 BigInt 非常大,以至于不能安全地表示它,这种转换可能会损失精度。
js
BigInt(Number(2n ** 54n + 1n)) === 2n ** 54n + 1n; // false
规范
Specification |
---|
ECMAScript Language Specification # sec-number-constructor |
浏览器兼容性
BCD tables only load in the browser