倚天杖
我在Firefox上进行了一些速度测试。-100/3 // -33.33..., 0.3663 millisecMath.floor(-100/3) // -34, 0.5016 millisec~~(-100/3) // -33, 0.3619 millisec(-100/3>>0) // -33, 0.3632 millisec(-100/3|0) // -33, 0.3856 millisec(-100-(-100%3))/3 // -33, 0.3591 millisec/* a=-100, b=3 */a/b // -33.33..., 0.4863 millisecMath.floor(a/b) // -34, 0.6019 millisec~~(a/b) // -33, 0.5148 millisec(a/b>>0) // -33, 0.5048 millisec(a/b|0) // -33, 0.5078 millisec(a-(a%b))/b // -33, 0.6649 millisec以上是基于每个1000万次试验。结论:使用(a/b>>0)(或(~~(a/b))或(a/b|0))可以使效率提高约20%。也请记住,他们都是不一致Math.floor的时候a/b<0 && a%b!=0。