详解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宝典学习笔记
Feb 07 Javascript
告诉大家什么是JSON
Jun 10 Javascript
替代window.event.srcElement效果的可兼容性的函数
Dec 18 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
Dec 19 Javascript
vue如何实现observer和watcher源码解析
Mar 09 Javascript
bootstrap常用组件之头部导航实现代码
Apr 20 Javascript
jQuery查找dom的几种方法效率详解
May 17 jQuery
微信小程序之前台循环数据绑定
Aug 18 Javascript
node.js到底要不要加分号浅析
Jul 11 Javascript
vue 微信扫码登录(自定义样式)
Jan 06 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
Mar 16 Javascript
javascript自定义加载loading效果
Sep 15 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做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
用PHP生成静态HTML速度快类库
2007/03/18 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
2012/10/06 PHP
PHP缓存机制Output Control详解
2014/07/14 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
Laravel+Intervention实现上传图片功能示例
2019/07/09 PHP
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
python web框架学习笔记
2016/05/03 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
Python单元测试简单示例
2018/07/03 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
Python PIL图片添加字体的例子
2019/08/22 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
zooplus意大利:在线宠物商店
2019/08/07 全球购物
联谊活动总结
2014/08/28 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
预备党员转正意见
2015/06/01 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python