JavaScript十大取整方法实例教程


Posted in Javascript onDecember 03, 2020

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取整方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
IE与firefox下Dhtml的一些区别小结
Dec 02 Javascript
JS 控制非法字符的输入代码
Dec 04 Javascript
读jQuery之十二 删除事件核心方法
Jul 31 Javascript
jquery实现图片灯箱明暗的遮罩效果
Nov 15 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
Jan 06 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
Apr 07 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
Sep 19 Javascript
Extjs实现下拉菜单效果
Apr 01 Javascript
javascript实现列表切换效果
May 02 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
Mar 31 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
Oct 22 Javascript
Vue实现背景更换颜色操作
Jul 17 Javascript
js实现圆形菜单选择器
Dec 03 #Javascript
Javascript新手入门之字符串拼接与变量的应用
Dec 03 #Javascript
vue表单验证之禁止input输入框输入空格
Dec 03 #Vue.js
微信小程序实现首页弹出广告
Dec 03 #Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
Dec 03 #Javascript
基于javascript实现放大镜特效
Dec 03 #Javascript
javascript实现时钟动画
Dec 03 #Javascript
You might like
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
PHP 透明水印生成代码
2012/08/27 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访 VP.no[o]ne心中最强SOLO是谁
2018/04/04 DOTA
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
pytorch:model.train和model.eval用法及区别详解
2020/02/20 Python
Python request post上传文件常见要点
2020/11/20 Python
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
房屋转让协议书
2014/10/18 职场文书
博士给导师的自荐信
2015/03/06 职场文书
联谊会开场白
2015/06/01 职场文书
党员证明模板
2015/06/19 职场文书
提档介绍信范文
2015/10/22 职场文书
python实现简单的名片管理系统
2021/04/26 Python
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers