js 整数实现
整数表示
JavaScript 使用 IEEE 754 双精度浮点数标准存储所有数字,包括整数。虽然整数在语言中没有独立的数据类型,但可以通过以下方式实现整数操作:
- 所有整数在 ±2^53 范围内可精确表示(即
Number.MIN_SAFE_INTEGER到Number.MAX_SAFE_INTEGER) - 超过该范围的整数可能出现精度丢失
整数检测方法
// 检查是否为整数
Number.isInteger(42); // true
Number.isInteger(42.0); // true
Number.isInteger(42.1); // false
// 安全范围内的整数检测
Number.isSafeInteger(9007199254740992); // false (超出安全范围)
整数转换方法
// 转换为整数
Math.trunc(3.14); // 3 (直接截断小数部分)
parseInt("10.5"); // 10 (字符串转整数)
// 四舍五入
Math.round(3.6); // 4
Math.floor(3.6); // 3 (向下取整)
Math.ceil(3.2); // 4 (向上取整)
位运算技巧
虽然 JavaScript 没有真正的整数类型,但位运算符会将操作数转换为32位有符号整数:
// 快速取整
let num = 3.14 | 0; // 3
// 检查奇偶
function isEven(n) {
return (n & 1) === 0;
}
大整数处理
对于超过安全范围的整数,可使用 BigInt 类型:
const bigInt = 9007199254740993n; // 后缀n声明BigInt
typeof bigInt; // "bigint"
// 运算时需要类型一致
5n + 2n; // 7n
5n + 2; // 报错
注意事项
- 浮点数运算可能导致看似整数的值实际包含微小误差(如
0.1 + 0.2 !== 0.3) - 位运算仅适用于32位范围(-2,147,483,648 到 2,147,483,647)
- BigInt 不能与 Number 混合运算,也不能用于 Math 对象的方法







