详解JavaScript中|单竖杠运算符的使用方法


Posted in Javascript onMay 23, 2016

js运算符单竖杠“|”的作用

在js整数操作的时候,相当于去除小数点,parseInt。在正数的时候相当于Math.floor(),负数的时候相当于Math.ceil() 注:

1. Math.ceil()用作向上取整。
2. Math.floor()用作向下取整。
3. Math.round() 我们数学中常用到的四舍五入取整。

console.log(0.6|0)//0
console.log(1.1|0)//1
console.log(3.65555|0)//3
console.log(5.99999|0)//5
console.log(-7.777|0)//-7

注:除了Math的三个方法处理数字,我们还经常用parseInt()、parseFloat()、toFixed()与toPrecision() 等等。 简单解释:

toFixed方法用法如下:

100.456001.toFixed(2); //100.47

100.456001.toFixed(3); //100.456

Number.prototype.toFixed.call(100.456001,2); //100.47

缺点:用之后就会变成字符串。

toPrecision用法如下:

99.456001.toPrecision(5); //99.456

100.456001.toPrecision(5); //100.46

Number.prototype.toPrecision.call(10.456001,5); //10.456

单竖杠的运算规则

看了上面的例子,大体知道单竖杠可以进行取整运算,就是只保留正数部分,小数部分通过拿掉,但是“|0”,又是如何进行运算的呢,为什么能“|0”能达到取整的目的呢?单竖杠不是0有会是多少呢?

带着这些问题,我们看下面例子:

console.log(3|4); //7
console.log(4|4);//4
console.log(8|3);//11
console.log(5.3|4.1);//5
console.log(9|3455);//3455

好吧,我在这里公布答案吧。其实单竖杠“|”就是转换为2进制之后相加得到的结果。例如我们拿简单的举例:

3|4

转换为二进制之后011|100  相加得到111=7
4|4

转换为二进制之后100 |100  相加得到100=4
8|3

转换为二进制之后1000 |011  相加得到1011=11
Javascript 相关文章推荐
IE8 下的Js错误HTML Parsing Error...
Aug 14 Javascript
Javascript的常规数组和关联数组对比小结
May 24 Javascript
用jquery存取照片的具体实现方法
Jun 30 Javascript
javascript删除一个html元素节点的方法
Dec 20 Javascript
在jQuery中处理XML数据的大致方法
Aug 14 Javascript
纯javascript响应式树形菜单效果
Nov 10 Javascript
JS动态增删表格行的方法
Mar 03 Javascript
jquery 动态合并单元格的实现方法
Aug 26 Javascript
js实现鼠标拖动功能
Mar 20 Javascript
vue+axios实现登录拦截的实例代码
May 22 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
Oct 25 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 jQuery
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
May 23 #Javascript
jQuery Mobile中的button按钮组件基础使用教程
May 23 #Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
May 23 #Javascript
jQuery插件formValidator实现表单验证
May 23 #Javascript
超链接怎么正确调用javascript函数
May 23 #Javascript
以WordPress为例讲解jQuery美化页面Title的方法
May 23 #Javascript
jQuery中选择器的基础使用教程
May 23 #Javascript
You might like
php版微信数据统计接口用法示例
2016/10/12 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
js实现照片墙功能实例
2015/02/05 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
python批量制作雷达图的实现方法
2016/07/26 Python
Python可变参数用法实例分析
2017/04/02 Python
Django 多语言教程的实现(i18n)
2018/07/07 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
应聘收银员个人的求职信
2013/11/30 职场文书
文明市民先进事迹
2014/05/15 职场文书
森马旗舰店双十一营销方案
2014/09/29 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
2014年采购工作总结
2014/11/20 职场文书
行政处罚告知书
2015/07/01 职场文书
公司酒会主持词
2015/07/02 职场文书
团结主题班会
2015/08/13 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis
Java的Object类的九种方法
2022/04/13 Java/Android