Number 数字

js/number2026-10-29 11:03:47

Number 类型 用于表示数值。JavaScript 中的所有数值都使用 Number 类型,包括整数和浮点数、正数和负数。Infinity 和 NaN 也用于表示数值,也是 Number 类型。

虽然 number 在概念上是一个“数学的值”,并且总是隐式的编码为浮点类型,但是 JavaScript 提供了位运算符。当应用位运算符时,number 首先转换为 32 位整数。

Number 类型的范围

Number 类型 是一种基于 IEEE 754 标准的双精度 64 位二进制格式的值。

Number 类型能够存储 2-1074(Number.MIN_VALUE)和 21024(Number.MAX_VALUE)之间的正浮点数,以及 -2-1074 和 -21024 之间的负浮点数。

Number 类型仅能安全地存储在 -(253 − 1)(Number.MIN_SAFE_INTEGER)到 253 − 1(Number.MAX_SAFE_INTEGER)范围内的整数。超出这个范围,JavaScript 将不能安全地表示整数;相反,它们将由双精度浮点近似表示。你可以使用 Number.isSafeInteger() 检查一个数是否在安全的整数范围内。

±(2-1074 ~ 21024) 范围之外的值会自动转换:

  • 大于 Number.MAX_VALUE 的正值被转换为 +Infinity。
  • 小于 Number.MIN_VALUE 的正值被转换为 +0。
  • 小于 -Number.MAX_VALUE 的负值被转换为 -Infinity。
  • 大于 -Number.MIN_VALUE 的负值被转换为 -0。

0 和 -0

Number 类型仅有一个具有多个表现形式的值:0。

0 同时表示为 -0 和 +0(其中 0 是 +0 的别名)。实际上,这两者之间几乎没有区别;例如,+0 === -0 是 true。然而,当你除以 0 的时候,你要注意到这一点:

console.log(42 / +0); // Infinity
console.log(42 / -0); // -Infinity

console.log(1 / Infinity); // 0
console.log(1 / -Infinity); // -0

Infinity

全局属性 Infinity 是一个数值,表示无穷大。

Infinity 的初始值是 Number.POSITIVE_INFINITY。Infinity(正无穷大)大于任何值。

NaN

NaN(“Not a Number”)是一个特殊种类的数值,当算术运算的结果不表示数值时,通常会遇到它。

NaN 是 JavaScript 中唯一不等于自身的值。

相关条目

关于运算符提供的数学运算,参见运算符章节。
关于 Math 对象提供的运算方法,参见 Math 对象。

参考

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

JavaScript 数据类型和数据结构
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures

本页目录