js 整数实现
整数表示方法
JavaScript 使用 IEEE 754 双精度浮点数标准表示所有数字,包括整数。整数实际上是浮点数的一个子集,没有单独的整数类型。所有数字都以 64 位格式存储,其中 1 位表示符号,11 位表示指数,52 位表示尾数。
安全整数范围
JavaScript 中能够精确表示的整数范围由 Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER 定义:
- 最大安全整数:
9007199254740991(2^53 - 1) - 最小安全整数:
-9007199254740991(-(2^53 - 1))
超出这个范围的整数可能会丢失精度:

console.log(9007199254740992 === 9007199254740993); // 可能输出 true
检查安全整数
使用 Number.isSafeInteger() 方法检测一个数字是否为安全整数:
Number.isSafeInteger(42); // true
Number.isSafeInteger(9007199254740992); // false
大整数支持
ES2020 引入了 BigInt 类型来处理超出安全范围的整数:

const bigInt = 9007199254740993n; // 使用 n 后缀
console.log(bigInt + 1n); // 9007199254740994n
位运算处理
JavaScript 的位运算符 (|, &, <<, >> 等) 会将操作数转换为 32 位有符号整数:
console.log(0x7FFFFFFF | 0); // 2147483647 (最大32位有符号整数)
console.log(0xFFFFFFFF | 0); // -1 (32位有符号整数)
类型转换方法
将其他类型转换为整数:
// 字符串转整数
parseInt("123"); // 123
parseInt("101", 2); // 5 (二进制解析)
// 快速转换
~~3.14; // 3 (双按位非)
3.14 | 0; // 3 (按位或)
Math.floor(3.14); // 3
Math.trunc(3.14); // 3 (ES6)
特殊数值处理
JavaScript 中的特殊数值:
Number.isInteger(42.0); // true
Number.isInteger(NaN); // false
Number.isInteger(Infinity); // false






