[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_INTEGER
和 Number.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