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 相关文章推荐
随机显示经典句子或诗歌的javascript脚本
Aug 04 Javascript
javascript 必知必会之closure
Sep 21 Javascript
javascript测试题练习代码
Oct 10 Javascript
利用js制作html table分页示例(js实现分页)
Apr 25 Javascript
js动态修改整个页面样式达到换肤效果
May 23 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
Jul 28 Javascript
Javascript实现苹果悬浮虚拟按钮
Apr 10 Javascript
BootStrap 页签切换失效的解决方法
Aug 17 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
Nov 14 Javascript
Vue不能检测到Object/Array更新的情况的解决
Jun 26 Javascript
微信小程序实现吸顶效果
Jan 08 Javascript
鸿蒙系统中的 JS 开发框架
Sep 18 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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
javascript 面向对象编程 function也是类
2009/09/17 Javascript
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
2016/05/20 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python zip文件 压缩
2008/12/24 Python
实例讲解python函数式编程
2014/06/09 Python
windows下python和pip安装教程
2018/05/25 Python
python3使用QQ邮箱发送邮件
2020/05/20 Python
python实现弹窗祝福效果
2019/04/07 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
励志广播稿300字(5篇)
2014/09/15 职场文书
认错检讨书
2014/10/02 职场文书
老人节主持词
2015/07/04 职场文书
军事理论课感想
2015/08/11 职场文书
入党转正申请书范文
2019/05/20 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
如何用JS实现网页瀑布流布局
2021/04/24 Javascript
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python
关于pytest结合csv模块实现csv格式的数据驱动问题
2022/05/30 Python
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers