详解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 相关文章推荐
Add a Formatted Table to a Word Document
Jun 15 Javascript
一个网马的tips实现分析
Nov 28 Javascript
图片onload事件触发问题解决方法
Jul 31 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
Aug 17 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
Dec 08 Javascript
jQuery Easyui datagrid/treegrid 清空数据
Jul 09 Javascript
Js获取当前日期时间及格式化代码
Sep 17 Javascript
移动端web滚动分页的实现方法
May 05 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
Aug 31 Javascript
使用taro开发微信小程序遇到的坑总结
Apr 08 Javascript
vue 父组件通过v-model接收子组件的值的代码
Oct 27 Javascript
OpenLayers实现图层切换控件
Sep 25 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
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
jQuery textarea的长度进行验证
2009/05/06 Javascript
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
js随机生成一个验证码
2017/06/01 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
wxPython学习之主框架实例
2014/09/28 Python
python中redis的安装和使用
2016/12/04 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
python机器学习之随机森林(七)
2018/03/26 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
python实现串口通信的示例代码
2020/02/10 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
VC++笔试题
2014/10/13 面试题
教师见习报告范文
2014/11/03 职场文书
山楂树之恋观后感
2015/06/11 职场文书
Pyhton模块和包相关知识总结
2021/05/12 Python