2017年3月

关于 js 的取整

今天在写一个倒计时的时候,突然想起一个问题,“对于 js 的小数取整,那种方法效率最高呢?” 然后我就把我能想到的取整的方法做了一下测试,大概是这个样子 Math.floor(-100/3) parseInt(-100/3) ~~(-100/3) (-100/3 >> 0) (-100/3 | 0) ( -100 - (-100%3) ) / 3 然后我把每种方法跑了 10^7 次,取了一下平均值,然后发现: Math.floor 耗时 0.0000197 ms parseInt 耗时 0.0000225 ms ~~(-100/3)、(-100/3 >> 0)、(-100/3 | 0) 三个耗时基本相同,大概都是 0.0000029ms 的样子 ( -100 - (-100%3) ) / 3 耗时 0.0000155ms 基本可以看出,三个位运算的方法耗时最少,而且少很多,那么是不是我们就可以使用这三种方法了呢? 在说答案之前,我们先来看看他们都干了什么吧 首先,位运算为什么能取整? 因为 js 是弱类型的语言...