详解JavaScript中|单竖杠运算符的使用方法

 更新时间:2016年05月23日 16:47:44   作者:Aaron  
JavaScript中|单竖杠通常被用来对浮点型数字进行取证,这里同时也介绍了单竖杠的运算规则,下面我们就来详解JavaScript中|单竖杠的使用方法

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系列(41):设计模式之模板方法详解

    深入理解JavaScript系列(41):设计模式之模板方法详解

    这篇文章主要介绍了深入理解JavaScript系列(41):设计模式之模板方法详解,模板方法(TemplateMethod)定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤,需要的朋友可以参考下
    2015-03-03
  • JS声明变量背后的编译原理剖析

    JS声明变量背后的编译原理剖析

    只要是写过点JS代码,很简单一个var 就完事了。那对于JS编译器背后它又发生了什么呢?那就一步步通过代码来讲起,需要了解的朋友研究下哦
    2012-12-12
  • Document 对象的常用方法

    Document 对象的常用方法

    通过元素的ID访问元素,这是DOM一个基础的访问页面元素的方法,我们要经常用到它.
    2009-07-07
  • javascript中判断一个值是否在数组中并没有直接使用

    javascript中判断一个值是否在数组中并没有直接使用

    在JS中要判断一个值是否在数组中并没有函数直接使用,如PHP中就有in_array()这个函数,可以写一个类似in_array()函数功能的方法
    2012-12-12
  • javascript实现计算器功能详解流程

    javascript实现计算器功能详解流程

    这篇文章主要为大家详细介绍了JavaScript实现简单计算器小功能,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,大家可以在本篇实例中查缺补漏,提升水平
    2021-11-11
  • javascript实现的网页局布刷新效果

    javascript实现的网页局布刷新效果

    AJAX,近几年火热起来的一个词.什么是ajax本文就不介绍了,其实,AJAX也就是 javascript脚本的应用.全拼是:AsynchronousJavaScript+XML .现在我们就来看一个用javascript实现的局部刷新
    2008-12-12
  • 你真的了解JavaScript的作用域与闭包吗

    你真的了解JavaScript的作用域与闭包吗

    这篇文章主要为大家详细介绍了JavaScript作用域与闭包,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • ES5学习教程之Array对象

    ES5学习教程之Array对象

    这篇文章主要给大家介绍了ES5中新增的Array对象的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
    2017-04-04
  • 初学JS的的小例子 javascript replace高亮替换

    初学JS的的小例子 javascript replace高亮替换

    初学JS的的小例子 javascript replace高亮替换...
    2007-12-12
  • Js中sort()方法的用法

    Js中sort()方法的用法

    Js中sort()方法的用法,需要的朋友可以参考下。
    2006-11-11

最新评论