JavaScript ~~运算符与Math.floor的区别

本文探讨了JavaScript中按位与运算符(~~)与Math.floor()在处理大数相加时的区别。在某些情况下,使用按位与运算符可能会导致不正确结果,特别是在大数相加的场景中,因为它会处理undefined,这与Math.floor()的行为不同。文章通过示例解释了这种差异,并提供了相关参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在用JavaScript实现大数相加的时候,发现网上的解法当中有使用~~运算符,之前没有见过。在网上一查,说是Math.floor()的更好的一种表示方法,运行速度更快。但是将大数相加的代码中的~~换成Math.floor()发觉得不到正确的答案,所以想来分析一下异同。

~~~

~运算符

用于将整数变为-(N+1)

例如:

~2 === -3; //true
~1 === -2; //true
~0 === -1; //true
~-1 === 0; //true
~~运算符

~~Math.floor()的一个替代,相同的操作但是更快。可以使用它将任何浮点数转换为整数(下取整)。

例如:

~~2 === Math.floor(2); //true, 2
~~2.4 === Math.floor(2); //true, 2
~~3.9 === Math.floor(3); //true, 3

~~Math.floor()在性能上的不同:

# Browser Math.floor()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值