详解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 相关文章推荐
在jquery中处理带有命名空间的XML数据
Jun 13 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
Sep 28 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
Feb 27 Javascript
jquery无缝向上滚动实现代码
Mar 29 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
Dec 19 Javascript
javascript中数组的多种定义方法和常用函数简介
May 09 Javascript
jquery append()方法与html()方法的区别及使用介绍
Aug 01 Javascript
14 个折磨人的 JavaScript 面试题
Aug 08 Javascript
使用jquery给新生的th绑定hover事件的实例
Feb 10 Javascript
vue引入swiper插件的使用实例
Jul 19 Javascript
React props和state属性的具体使用方法
Apr 12 Javascript
vue.js实现的幻灯片功能示例
Jan 18 Javascript
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
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
2020/04/07 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
Python实现的石头剪子布代码分享
2014/08/22 Python
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
python实现计算器功能
2019/10/31 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
师范应届生教师求职信
2013/11/05 职场文书
历史专业毕业生的自我鉴定
2013/11/15 职场文书
音乐器材管理制度
2014/01/31 职场文书
法学专业自我鉴定
2014/02/05 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
Python答题卡识别并给出分数的实现代码
2021/06/22 Python