详解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支持DOM 2(不用框架!)
Dec 31 Javascript
超轻量级的基于jquery的三级展开列表
Apr 26 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
Jan 18 Javascript
html向js方法传递参数具体实现
Aug 08 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
May 27 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
Sep 23 Javascript
web前端vue之vuex单独一文件使用方式实例详解
Jan 11 Javascript
Electron实现应用打包、自动升级过程解析
Jul 07 Javascript
antd Select下拉菜单动态添加option里的内容操作
Nov 02 Javascript
Vue 3自定义指令开发的相关总结
Jan 29 Vue.js
Vue如何清空对象
Mar 03 Vue.js
JS函数式编程实现XDM一
Jun 16 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
typecho插件编写教程(一):Hello World
2015/05/28 PHP
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
简单的php购物车代码
2020/06/05 PHP
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
js实现每日自动换一张图片的方法
2015/05/04 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
AngularJS使用ng-repeat指令实现下拉框
2016/08/23 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
js实现小时钟效果
2020/03/25 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
jQuery+ajax实现文件上传功能
2020/12/22 jQuery
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python中管道用法入门实例
2015/06/04 Python
Python抓取框架 Scrapy的架构
2016/08/12 Python
python 网络编程详解及简单实例
2017/04/25 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
对python中Json与object转化的方法详解
2018/12/31 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
智能室内花园:Click & Grow
2021/01/29 全球购物
大学生毕业自我鉴定范文
2013/11/03 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
教师研修随笔感言
2015/11/18 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
PHP遍历数组的6种方式总结
2021/11/17 PHP
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers