详细Math.floor() Math.ceil() Math.round() parseInt()区别

  1. Math.floor(x) 向下取整(地板函数)
Math.floor(4.9);    // 4
Math.floor(-4.1);   // -5
Math.floor(NaN);    // NaN
  1. Math.ceil(x) 向上取整(天花板函数)
Math.floor(4.9);    // 4
Math.floor(-4.1);   // -5
Math.floor(NaN);    // NaN
  1. 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(但实际是先将数字转字符串)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值