JavaScript中Number类型统一用IEEE 754双精度浮点格式表示所有数字,不区分整数和浮点数;整数可用十进制、十六进制(0x)、八进制(0o)字面量书写;浮点数需含小数点或使用科学计数法;所有数值运算基于十进制,但存在精度限制与安全整数范围(±2⁵³−1)。

JavaScript 中的 Number 类型统一用 IEEE 754 双精度浮点格式表示所有数字,**不区分整数和浮点数**。所谓“整数”只是没有小数部分的 Number 值,本质上仍是浮点数。
整数的表示方式
整数可用三种进制字面量书写:
-
十进制:最常用,直接写数字,如
42、-100; -
十六进制:以
0x或0X开头,后跟 0–9 和 A–F(大小写均可),如0xFF(255)、0xab(171); -
八进制:以
0o或0O开头(ES6 起推荐),如0o755(493);旧式写法0755在非严格模式下仍可解析,但严格模式中会报语法错误,应避免。
浮点数的表示方式
浮点数必须包含小数点,且小数点后至少有一位数字:
- 标准写法:
3.14、0.001、-2.5; - 可省略整数部分(不推荐):
.5等价于0.5; - 可省略小数部分(会被自动转为整数):
5.或10.0都等价于整数5和10; - 科学计数法(e 表示法):
1.23e4(即 1.23 × 10⁴ = 12300)、5e-3(即 0.005)。
注意几个关键细节
这些行为直接影响实际开发:
立即学习“Java免费学习笔记(深入)”;
- 所有进制字面量(八进制、十六进制)在运算中都自动转为十进制数值,不影响计算逻辑;
- 看似整数的值(如
100)和浮点形式(如100.0)在 JavaScript 中完全等价,typeof都返回"number"; - 不存在真正的“整数类型”,因此
0.1 + 0.2 !== 0.3是正常现象,源于二进制浮点精度限制; - 安全整数范围是
-(2⁵³−1)到2⁵³−1(即 ±9007199254740991),超出此范围的整数可能丢失精度,超大整数建议用BigInt。
常见误写与验证建议
写代码时容易踩坑,可借助内置方法辅助判断:
- 用
Number.isInteger(10)判断是否为数学意义上的整数(10.0返回true,10.1返回false); - 用
Number.isSafeInteger(9007199254740992)检查是否在安全范围内; - 避免用
parseInt("08")这类老式写法——它在某些环境中会误判为八进制,改用Number("08")更可靠。


















