详解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 常用校验函数
Mar 26 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
Jun 25 Javascript
关于include标签导致js路径找不到的问题分析及解决
Jul 09 Javascript
IE浏览器下PNG相关功能
Jul 05 Javascript
关于JS中的方法是否加括号的问题
Jul 27 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
Aug 21 Javascript
angular实现页面打印局部功能的思考与方法
Apr 13 Javascript
turn.js异步加载实现翻书效果
Jul 25 Javascript
js实现课堂随机点名系统
Nov 21 Javascript
Vue父子传递实例讲解
Feb 14 Javascript
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 Javascript
vue实现的多页面项目如何优化打包的步骤详解
Jul 19 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
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
JS加ASP二级域名转向的代码
2007/05/17 Javascript
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
python万年历实现代码 含运行结果
2017/05/20 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
python做量化投资系列之比特币初始配置
2018/01/23 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
Django实现文件上传下载功能
2019/10/06 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
python爬虫模拟浏览器的两种方法实例分析
2019/12/09 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
Linux Interview Questions For software testers
2013/05/17 面试题
聘用意向书
2014/07/29 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
六年级小学生评语
2014/12/26 职场文书
自荐信格式范文
2015/03/04 职场文书
致青春观后感
2015/06/09 职场文书
四十年同学聚会致辞
2015/07/28 职场文书
幼儿园小班教学反思
2016/03/03 职场文书
python 详解turtle画爱心代码
2022/02/15 Python