详解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 相关文章推荐
基于jquery实现的可以编辑选择的下拉框的代码
Nov 19 Javascript
关于JS字符串函数String.replace()
Apr 07 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
Apr 12 Javascript
javascript数组随机排序实例分析
Jul 22 Javascript
javascript中Date format(js日期格式化)方法小结
Dec 17 Javascript
Javascript技术栈中的四种依赖注入详解
Feb 23 Javascript
浅谈js函数的多种定义方法与区别
Nov 29 Javascript
canvas实现钟表效果
Feb 13 Javascript
JS实现中国公民身份证号码有效性验证
Feb 20 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
js实现双人五子棋小游戏
May 28 Javascript
微信小程序自定义modal弹窗组件的方法详解
Dec 20 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 strtok()函数的优点分析
2010/03/02 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
Zend Framework教程之Zend_Config_Xml用法分析
2016/03/23 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
仿新浪微博返回顶部的jquery实现代码
2012/10/01 Javascript
JS文本框默认值处理详解
2013/07/10 Javascript
JavaScript实现Iterator模式实例分析
2015/06/09 Javascript
实例详解jQuery结合GridView控件的使用方法
2016/01/04 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
微信小程序收藏功能的实现代码
2018/06/12 Javascript
Vue清除定时器setInterval优化方案分享
2020/07/21 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
python简单程序读取串口信息的方法
2015/03/13 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
HTML5教程之html 5 本地数据库(Web Sql Database)
2014/04/03 HTML / CSS
会计找工作求职信范文
2013/12/09 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL