From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../reference/global_objects/number/index.html | 195 +++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 files/zh-cn/web/javascript/reference/global_objects/number/index.html (limited to 'files/zh-cn/web/javascript/reference/global_objects/number/index.html') diff --git a/files/zh-cn/web/javascript/reference/global_objects/number/index.html b/files/zh-cn/web/javascript/reference/global_objects/number/index.html new file mode 100644 index 0000000000..9e20355b94 --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/number/index.html @@ -0,0 +1,195 @@ +--- +title: Number +slug: Web/JavaScript/Reference/Global_Objects/Number +tags: + - JavaScript + - Number + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Number +--- +
{{JSRef}}
+ +

 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 对象主要用于:

+ + + +

属性

+ +
+
{{jsxref("Number.EPSILON")}}
+
两个可表示(representable)数之间的最小间隔。
+
{{jsxref("Number.MAX_SAFE_INTEGER")}}
+
JavaScript 中最大的安全整数 (253 - 1)。
+
{{jsxref("Number.MAX_VALUE")}}
+
能表示的最大正数。最小的负数是 -MAX_VALUE
+
{{jsxref("Number.MIN_SAFE_INTEGER")}}
+
JavaScript 中最小的安全整数 (-(253 - 1)).
+
{{jsxref("Number.MIN_VALUE")}}
+
能表示的最小正数即最接近 0 的正数 (实际上不会变成 0)。最大的负数是 -MIN_VALUE
+
{{jsxref("Number.NaN")}}
+
特殊的“非数字”值。
+
{{jsxref("Number.NEGATIVE_INFINITY")}}
+
特殊的负无穷大值,在溢出时返回该值。
+
{{jsxref("Number.POSITIVE_INFINITY")}}
+
特殊的正无穷大值,在溢出时返回该值。
+
{{jsxref("Number.prototype")}}
+
Number 对象上允许的额外属性。
+
+ +

方法

+ +
+
{{jsxref("Number.isNaN()")}}
+
确定传递的值是否是 NaN。
+
{{jsxref("Number.isFinite()")}}
+
确定传递的值类型及本身是否是有限数。
+
{{jsxref("Number.isInteger()")}}
+
确定传递的值类型是“number”,且是整数。
+
{{jsxref("Number.isSafeInteger()")}}
+
确定传递的值是否为安全整数 ( -(253 - 1) 至 253 - 1之间)。
+
{{jsxref("Number.toInteger()")}} {{obsolete_inline}}
+
计算传递的值并将其转换为整数 (或无穷大)。
+
+ +
+
+
{{jsxref("Number.parseFloat()")}}
+
和全局对象 {{jsxref("parseFloat", "parseFloat()")}} 一样。
+
{{jsxref("Number.parseInt()")}}
+
和全局对象 {{jsxref("parseInt", "parseInt()")}} 一样。
+
+
+ +

Number 实例

+ +

所有 Number 实例都继承自 {{jsxref("Number.prototype")}}。被修改的 Number 构造器的原型对象对全部 Number 实例都生效。

+ +

方法

+ +
{{page('/zh-CN/docs/JavaScript/Reference/Global_Objects/Number/prototype', 'Methods')}}
+ +

示例

+ +

使用 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^532^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
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{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')}}
+ +

浏览器兼容性

+ +
+ + +

{{Compat("javascript.builtins.Number")}}

+
+ +

参阅

+ + -- cgit v1.2.3-54-g00ecf