详解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 相关文章推荐
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
Jan 18 Javascript
js 获取计算后的样式写法及注意事项
Feb 25 Javascript
javascript面向对象之定义成员方法实例分析
Jan 13 Javascript
JavaScript组件焦点与页内锚点间传值的方法
Feb 02 Javascript
js实现的万能flv网页播放器代码
Apr 30 Javascript
jQuery简单实现仿京东分类导航层效果
Jun 07 Javascript
jQuery插件实现图片轮播特效
Jun 16 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
Sep 21 Javascript
Three.js如何实现雾化效果示例代码
Sep 27 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
Nov 02 Javascript
理解JavaScript中的对象
Aug 25 Javascript
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
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学习之数组的定义和填充
2011/04/17 PHP
php生成圆角图片的方法
2015/04/07 PHP
PHP环境搭建的详细步骤
2016/06/30 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
Python中return self的用法详解
2018/07/27 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
详解python内置模块urllib
2020/09/09 Python
python中slice参数过长的处理方法及实例
2020/12/15 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
领导检查欢迎词
2014/01/14 职场文书
遗嘱继承公证书
2014/04/09 职场文书
战略合作协议书范本
2014/04/18 职场文书
志愿者活动总结
2014/04/28 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
2015年银行大堂经理工作总结
2015/04/24 职场文书
离婚起诉书怎么写
2015/05/19 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
Python图片检索之以图搜图
2021/05/31 Python