--- title: Number slug: Web/JavaScript/Reference/Global_Objects/Number tags: - JavaScript - Number - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Number ---
JavaScript 的 Number
对象是经过封装的能让你处理数字值的对象。Number
对象由 Number()
构造器创建。
JavaScript的Number
类型为双精度IEEE 754 64位浮点类型。
最近出了stage3{{jsxref("BigInt")}} 任意精度数字类型,已经进入stage3规范
new Number(value); var a = new Number('123'); // a === 123 is false var b = Number('123'); // b === 123 is true a instanceof Number; // is true b instanceof Number; // is false
value
Number
对象主要用于:
Number
能被用来执行类型转换。253 - 1
)。-MAX_VALUE
。-(253 - 1)
).-MIN_VALUE
。(253 - 1)
至 253 - 1之间
)。Number
实例所有 Number
实例都继承自 {{jsxref("Number.prototype")}}。被修改的 Number
构造器的原型对象对全部 Number
实例都生效。
下例使用 Number
对象的属性给几个数字变量赋值:
var biggestNum = Number.MAX_VALUE; var smallestNum = Number.MIN_VALUE; var infiniteNum = Number.POSITIVE_INFINITY; var negInfiniteNum = Number.NEGATIVE_INFINITY; var notANum = Number.NaN;
JavaScript 能够准确表示的整数范围在-2^53
到2^53
之间(不含两个端点),超过这个范围,无法精确表示这个整数。 (详情请参阅 ECMAScript standard, chapter 6.1.6 The Number Type):
var biggestInt = Number.MAX_SAFE_INTEGER; //9007199254740991 var smallestInt = Number.MIN_SAFE_INTEGER; //-9007199254740991
在解析序列化的JSON时,如果JSON解析器将它们强制转换为Number类型,那么超出此范围的整数值可能会被破坏。在工作中使用{{jsxref("String")}} 类型代替,是一个可行的解决方案。
Number
转换 Date
对象下例使用 Number 作为函数来转换 Date
对象为数字值:
var d = new Date("December 17, 1995 03:24:00"); print(Number(d));
这将输出 "819199440000"。
Number('123') // 123
Number('12.3') // 12.3
Number('12.00') // 12
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
Number('-Infinity') //-Infinity
Specification | Status | Comment |
---|---|---|
{{SpecName('ES1')}} | {{Spec2('ES1')}} | 初始定义。 实现于 JavaScript 1.1. |
{{SpecName('ES5.1', '#sec-15.7', 'Number')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-number-objects', 'Number')}} | {{Spec2('ES6')}} | 新增了方法和属性: {{jsxref("Number.EPSILON", "EPSILON")}}, {{jsxref("Number.isFinite", "isFinite")}}, {{jsxref("Number.isInteger", "isInteger")}}, {{jsxref("Number.isNaN", "isNaN")}}, {{jsxref("Number.parseFloat", "parseFloat")}}, {{jsxref("Number.parseInt", "parseInt")}} |
{{SpecName('ESDraft', '#sec-number-objects', 'Number')}} | {{Spec2('ESDraft')}} |
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-dataand send us a pull request.
{{Compat("javascript.builtins.Number")}}