[JavaScript]内置对象Number初识

学习:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number

Number 类型可以表示整型和浮点型。

123 === 123.0;   // true

Number("123");         // returns the number 123
Number("123") === 123; // true

Number("unicorn");     // NaN
Number(undefined);     // NaN

Number(true);        // 1
Number(false);       // 0
Number(null);        // 0

 

JavaScript 的 Number 类型是一个双精度64位二进制格式 IEEE754 值,类似 Java 或者 C# 中的 double。

IEEE 754 双精度浮点数使用 64 位来表示 3 个部分:
1 比特符号位(sign)(正数或者负数)
11 比特指数位(exponent)(-1022 到 1023)
52 比特尾数位(mantissa)(表示 0 和 1 之间的数值)

 

一个数值可以容纳的最大值是 21024 - 1(基于二进制的指数为 1023,尾数为 0.1111...),这可以通过 Number.MAX_VALUE 获得。大于该值的数值,被特殊数常数 Infinity 取代。
Number.MIN_VALUE 属性表示在 JavaScript 中所能表示的最小的正值。(最接近 0 的正值,而不是最小的负值。) 小于 MIN_VALUE 的值将会转换为 0
只有在 -253 + 1 到 253 - 1 范围内的整数才能在不丢失精度的情况下被表示(可通过 Number.MIN_SAFE_INTEGERNumber.MAX_SAFE_INTEGER 获得),因为尾数只能容纳 53 位(包括前导 1)。

Number.MAX_SAFE_INTEGER // 9007199254740991
Math.pow(2, 53) - 1     // 9007199254740991

Number.MIN_SAFE_INTEGER // -9007199254740991
-(Math.pow(2, 53) - 1)  // -9007199254740991

 

posted @ 2023-02-13 18:07  夕苜19  阅读(20)  评论(0编辑  收藏  举报