详解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框架myJSFrame附API使用帮助
Jun 28 Javascript
JAVASCRIPT下判断IE与FF的比较简单的方式
Oct 17 Javascript
javascript 函数速查表
Feb 07 Javascript
js的alert样式如何更改如背景颜色
Jan 22 Javascript
javascript(js)的小数点乘法除法问题详解
Mar 07 Javascript
JavaScript实现文字与图片拖拽效果的方法
Feb 16 Javascript
ES6 Promise对象概念与用法分析
Apr 01 Javascript
Vuex之理解Mutations的用法实例
Apr 19 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
Jul 20 Javascript
基于JavaScript实现每日签到打卡轨迹功能
Nov 29 Javascript
jquery图片预览插件实现方法详解
Jul 18 jQuery
javascript实现简易数码时钟
Mar 30 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
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
Mootools 1.2教程 类(一)
2009/09/15 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
[01:00:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第三场 1月10日
2021/03/11 DOTA
Django中URLconf和include()的协同工作方法
2015/07/20 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
python 操作excel表格的方法
2020/12/05 Python
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
希特勒的演讲稿
2014/05/23 职场文书
学生检讨书怎么写
2014/10/09 职场文书
2014年绩效考核工作总结
2014/12/11 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
大学生助学金感谢信
2015/01/21 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
终止劳动合同通知书
2015/04/16 职场文书
开工典礼致辞
2015/07/29 职场文书
python中pandas对多列进行分组统计的实现
2021/06/18 Python
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电
使用Python拟合函数曲线
2022/04/14 Python