- Math.floor(x) 向下取整(地板函数)
Math.floor(4.9); // 4
Math.floor(-4.1); // -5
Math.floor(NaN); // NaN
- Math.ceil(x) 向上取整(天花板函数)
Math.floor(4.9); // 4
Math.floor(-4.1); // -5
Math.floor(NaN); // NaN
- Math.round(x)
核心逻辑:四舍五入,
Math.round(2.5); // 3
Math.round(3.5); // 4
Math.round(-2.5); // -2
- parseInt(string, radix)
核心逻辑:解析字符串直到遇到非数字字符,返回已解析的整数部分
关键特性: - 自动忽略前导空格:parseInt(" 123abc") 123
- 支持进制转换:parseInt(“1010”, 2) → 10
隐式类型转换:parseInt(12.99) → 12(数字会先转字符串)
危险案例:
parseInt("08"); // 0(旧版浏览器视为八进制)
parseInt("3e2"); // 3(遇到非数字字符 e 停止解析)
常见陷阱与建议
1、Math.round() 的临界值问题
不要用它处理需要精确边界的场景(如数组索引),优先用 Math.floor()。
2、parseInt 的进制问题
始终显式指定进制参数:
// ✅ 正确
parseInt("08", 10); // 8
// ❌ 危险
parseInt("08"); // 旧环境可能返回 0
3、数字处理优先用数学函数
处理数字时不要用 parseInt 替代 Math.floor:
// ✅ 更清晰的写法
Math.floor(12.99); // 12
// ❌ 混淆行为
parseInt(12.99); // 12(但实际是先将数字转字符串)