详解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 相关文章推荐
等待指定时间后自动跳转或关闭当前页面的js代码
Jul 09 Javascript
多种方法判断Javascript对象是否存在
Sep 22 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
Oct 21 Javascript
EasyUI在表单提交之前进行验证的实例代码
Jun 24 Javascript
bootstrap选项卡使用方法解析
Jan 11 Javascript
Jquery实时监听input value的实例
Jan 26 Javascript
浅谈jQuery框架Ajax常用选项
Jul 08 jQuery
把JavaScript代码改成ES6语法不完全指南(分享)
Sep 10 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
Jan 25 Javascript
vue插槽slot的理解和使用方法
Apr 03 Javascript
layui 实现加载动画以及非真实加载进度的方法
Sep 23 Javascript
QML实现圆环颜色选择器
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小偷相关截取函数备忘
2010/11/28 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
php标签云的实现代码
2012/10/10 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
js下利用控制器载入对应脚本
2010/07/17 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
2016/12/14 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
python实现汉诺塔方法汇总
2016/07/25 Python
python万年历实现代码 含运行结果
2017/05/20 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
python提取log文件内容并画出图表
2019/07/08 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
Python中Qslider控件实操详解
2021/02/20 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
html5菜单折纸效果
2014/04/22 HTML / CSS
Melissa鞋马来西亚官方网站:MDreams马来西亚
2018/04/05 全球购物
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
大学生就业自荐信
2013/10/26 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android