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 相关文章推荐
图片完美缩放
Sep 07 Javascript
面向对象的Javascript之三(封装和信息隐藏)
Jan 27 Javascript
控制文字内容的显示与隐藏示例
Jun 11 Javascript
jQuery插件实现无缝滚动特效
Nov 24 Javascript
用JS动态改变表单form里的action值属性的两种方法
May 25 Javascript
基于Javascript实现的不重复ID的生成器
Dec 25 Javascript
深入理解Javascript中的valueOf与toString
Jan 04 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
Jan 30 Javascript
vue 使用自定义指令实现表单校验的方法
Aug 28 Javascript
微信小程序新手教程之启动页的重要性
Mar 03 Javascript
用webAPI实现图片放大镜效果
Nov 23 Javascript
js Proxy的原理详解
May 25 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
php&amp;java(二)
2006/10/09 PHP
利用PHP命令行模式采集股票趋势信息
2016/08/09 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
JavaScript操作XML 使用百度RSS作为新闻源示例
2012/02/17 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
最实用的JS数组函数整理
2017/12/05 Javascript
深入理解react-router 路由的实现原理
2018/09/26 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
python使用KNN算法手写体识别
2018/02/01 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
DOM和JQuery对象有什么区别
2016/11/11 面试题
网页设计个人找工作求职信
2013/11/28 职场文书
库房主管岗位职责
2013/12/31 职场文书
运动会领导邀请函
2014/01/10 职场文书
高三政治教学反思
2014/02/06 职场文书
医学求职自荐信
2014/06/21 职场文书
先进事迹演讲稿
2014/09/01 职场文书
实验室安全管理制度
2015/08/05 职场文书
交通安全教育心得体会
2016/01/15 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript