详解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基础知识大全 便于大家学习,也便于我自己查看
Aug 17 Javascript
Egret引擎开发指南之创建项目
Sep 03 Javascript
JavaScript更改原始对象valueOf的方法
Mar 19 Javascript
Javascript常用小技巧汇总
Jun 24 Javascript
js鼠标点击图片切换效果代码分享
Aug 26 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
Dec 14 Javascript
JavaScript之iterable_动力节点Java学院整理
Jun 29 Javascript
js中的reduce()函数讲解
Jan 18 Javascript
JavaScript JMap类定义与使用方法示例
Jan 22 Javascript
手写Vue弹窗Modal的实现代码
Sep 11 Javascript
vue.js中ref及$refs的使用方法解析
Oct 08 Javascript
vue中使用v-for时为什么不能用index作为key
Apr 04 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 和 MySQL 基础教程(二)
2006/10/09 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
解析php中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
使用JavaScript实现表格编辑器(实例讲解)
2017/08/02 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
使用Python脚本操作MongoDB的教程
2015/04/16 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
python中的&&及||的实现示例
2019/08/07 Python
Python Collatz序列实现过程解析
2019/10/12 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
python实现字符串和数字拼接
2020/03/02 Python
appium+python adb常用命令分享
2020/03/06 Python
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
竟聘演讲稿范文
2013/12/31 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
先进个人材料怎么写
2014/12/30 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python