详解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 相关文章推荐
IE与firefox之jquery用法区别
Oct 03 Javascript
javascript函数定义的几种区别小结
Jan 06 Javascript
jQuery封装的tab选项卡插件分享
Jun 16 Javascript
jQuery获取同级元素的简单代码
Jul 09 Javascript
AngularJS实现DOM元素的显示与隐藏功能
Nov 22 Javascript
基于BootStrap的文本编辑器组件Summernote
Oct 27 Javascript
ajax前台后台跨域请求处理方式
Feb 08 Javascript
JavaScript设计模式之享元模式实例详解
Jan 17 Javascript
详解jQuery-each()方法
Mar 13 jQuery
JS实现的贪吃蛇游戏案例详解
May 01 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
Jan 20 Javascript
JavaScript中的惰性载入函数及优势
Feb 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
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
phpfans留言版用到的install.php
2007/01/04 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
基于vue2实现上拉加载功能
2017/11/28 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
echarts实现折线图的拖拽效果
2019/12/19 Javascript
JavaScript内置对象之Array的使用小结
2020/05/12 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
[59:15]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.20
2020/11/20 DOTA
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
python找出完数的方法
2018/11/12 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
贺卡寄语大全
2014/04/11 职场文书
中秋寄语大全
2014/04/11 职场文书
科学发展观活动总结
2014/08/28 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
党校学习个人总结
2015/02/15 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
化验室安全管理制度
2015/08/06 职场文书
初中语文教学随笔
2015/08/15 职场文书
高三语文教学反思
2016/02/16 职场文书
Python连续赋值需要注意的一些问题
2021/06/03 Python
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫