JavaScript 取整时用parseInt()和Math.floor()的区别

parseInt() 函数和 Math.floor() 在JavaScript中用于取整,但它们之间有一些关键的区别:

1.数据类型转换

  • parseInt() 是一个全局函数,它可以将字符串解析为整数。如果字符串以数字开头,它会继续解析直到遇到非数字字符,并返回整数部分。如果字符串不是以数字开头,它会返回 NaN
  • Math.floor() 是 Math 对象的一个方法,它接受一个数字作为参数,并返回小于或等于这个数的最大整数。

2.处理非数字字符串

  • parseInt() 在遇到非数字字符时会停止解析,并返回已经解析的整数部分。如果字符串不是有效的数字,它会返回 NaN
  • Math.floor() 在遇到非数字字符串时会抛出错误,因为它期望的是一个数字。

3.处理浮点数

  • parseInt() 解析浮点数时,会返回整数部分,忽略小数部分。
  • Math.floor() 会向下取整,即它会去掉小数部分,只保留整数部分。

4.返回值

  • parseInt() 返回一个整数或 NaN
  • Math.floor() 返回一个整数或 -Infinity(如果参数小于 0)。

5.性能

  • parseInt() 在处理整数时通常比 Math.floor() 更快,因为它不需要进行数学运算。

6.使用场景

  • 从字符串中提取整数部分,并且不关心小数部分,parseInt() 是合适的选择。
  • 进行数学运算,尤其是向下取整,或者处理负数,Math.floor() 是更好的选择。

看看代码实例:

parseInt('123.45'); // 返回 123
Math.floor(123.45); // 返回 123

parseInt('123.99'); // 返回 123
Math.floor(123.99); // 返回 123

parseInt('-123.45'); // 返回 -123
Math.floor(-123.45); // 返回 -124

parseInt('abc'); // 返回 NaN
Math.floor('abc'); // 抛出错误

         在这个例子中,parseInt() 总是返回整数部分,而 Math.floor() 会根据数字的正负来决定是向上还是向下取整。对于非数字字符串,parseInt() 返回 NaN,而 Math.floor() 会抛出错误。

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值