1. parseInt()
// js内置函数,注意接受参数是string,所以调用该方法时存在类型转换 parseInt("1.5555") // => 1
2. Number.toFixed(0)
// 注意toFixed返回的字符串,若想获得整数还需要做类型转换 1.5555.toFixed(0) // => "1"
3. Math.ceil()
// 向上取整 Math.ceil(1.5555) // => 2
4. Math.floor()
// 向下取整 Math.floor(1.5555) // => 1
5. Math.round()
// 四舍五入取整 Math.round(1.5555) // => 2 Math.round(1.4999) // => 1
6. Math.trunc()
// 舍弃小数取整 Math.trunc(1.5555) // => 1
7. 双按位非取整
// 利用位运算取整,仅支持32位有符号整型数,小数位会舍弃,下同 ~~1.5555 // => 1
8. 按位运或取整
1.5555 | 0 // => 1
9. 按位异或取整
1.5555^0 // => 1
10. 左移0位取整
1.5555<<0 // => 1
上述10种取整方法中,最常用的估计是前2种 [我裂开了~~],不过从性能角度看,位运算取整和Math函数性能最佳,内置方法parseInt次之,toFixed性能最劣。
以下是Benchmark测试结果,证明了这点,toFixed性能是最差的:
darwin x64 整数取整#getNum1#parseInt x 210,252,532 ops/sec ±2.74% (85 runs sampled) 整数取整#getNum2#toFixed x 3,281,188 ops/sec ±1.54% (86 runs sampled) 整数取整#getNum3#Math.ceil x 778,272,700 ops/sec ±3.97% (87 runs sampled) 整数取整#getNum4#Math.floor x 816,990,140 ops/sec ±0.54% (88 runs sampled) 整数取整#getNum5#Math.round x 814,868,414 ops/sec ±0.65% (88 runs sampled) 整数取整#getNum6#Math.trunc x 821,032,596 ops/sec ±0.54% (91 runs sampled) 整数取整#getNum7#~~num x 813,589,741 ops/sec ±0.67% (90 runs sampled) 整数取整#getNum8#num | 0 x 815,070,107 ops/sec ±0.65% (90 runs sampled) 整数取整#getNum9#num ^ 0 x 812,635,464 ops/sec ±0.74% (90 runs sampled) 整数取整#getNum10#num << 0 x 819,230,753 ops/sec ±0.49% (91 runs sampled) Fastest is 整数取整#getNum6#Math.trunc,整数取整#getNum10#num << 0
Benchmark源代码
参考
developer.mozilla.org/zh-CN/docs/…
developer.mozilla.org/zh-CN/docs/…
developer.mozilla.org/zh-CN/docs/…
到此这篇关于JavaScript十大取整方法的文章就介绍到这了,更多相关JS取整方法内容请搜索站长技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持站长技术!
前言 金三银四跳槽季你准备好了吗希望各位小伙伴能够苦练技术早日达成自己心仪的...
一android视频教程 1Android入门教程 链接 https://pan.baidu.com/s/1VaznV1QVlk...
0. 前言 一般我们购买一个开发板,厂家都会给出对应的电路图文件,我们可以通过...
作者 |?写代码的明哥 来源 |Python编程时光ID: Cool-Python 如何在运行状态查看...
一、HTML中多媒体的应用_falsh动画(往网页中插入Flash动画) 1. Flash动画插入...
参考 将现有应用程序移植到.NET Core 3.0 环境 首先要下载 .NET Core 3.0 与 Vis...
我们可能经常会用到这一功能,比如有时,我们不希望用户没有进行登录访问后台的...
数据库管理系统在今天已经是软件的重要组成部分,开源的 MySQL、PostgreSQL 以及...
复制代码 代码如下: % Option Explicit ' 显示声明 Class Com_GifCode_Class '''...
本文转载自微信公众号「DBA闲思杂想录」,作者潇湘隐者 。转载本文请联系DBA闲思...