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 相关文章推荐
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
Jun 10 Javascript
JavaScript高级程序设计 XML、Ajax 学习笔记
Sep 10 Javascript
javascript之Partial Application学习
Jan 10 Javascript
JavaScript 事件入门知识
Apr 13 Javascript
微信小程序 触控事件详细介绍
Oct 17 Javascript
socket.io实现在线群聊功能
Apr 07 Javascript
AngularJS集合数据遍历显示的实例
Dec 27 Javascript
js装饰设计模式学习心得
Feb 17 Javascript
解决低版本的浏览器不支持es6的import问题
Mar 09 Javascript
小程序和web画三角形实现解析
Sep 02 Javascript
JavaScript实现复选框全选和取消全选
Nov 20 Javascript
node中使用shell脚本的方法步骤
Mar 23 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
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
分割GBK中文遭遇乱码的解决方法
2013/08/09 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
php自动载入类用法实例分析
2016/06/24 PHP
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
2016/06/12 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
2016/12/26 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
Python正则表达式的使用范例详解
2014/08/08 Python
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
pandas中的series数据类型详解
2019/07/06 Python
Python面向对象之Web静态服务器
2019/09/03 Python
Python多进程编程常用方法解析
2020/03/26 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
python定时截屏实现
2020/11/02 Python
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
英国足球店:UK Soccer Shop
2017/11/19 全球购物
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
程序集与命名空间有什么不同
2014/07/25 面试题
中专毕业个人的自荐信格式
2013/09/21 职场文书
应用心理学个人求职信范文
2013/12/11 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
生产部管理制度
2014/01/31 职场文书
小学生美德少年事迹
2014/02/02 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
质量提升方案
2014/06/16 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
golang正则之命名分组方式
2021/04/25 Golang