在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

单竖杠的运算规则

看了上面的例子,大体知道单竖杠可以进行取整运算,就是只保留正数部分,小数部分通过拿掉,但是“|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

这里面提到了单竖杠“|”但是没有javascript的。

好吧,我在这里公布答案吧。其实单竖杠“|”就是转换为2进制之后相加得到的结果。例如我们拿简单的举例:

3|4

转换为二进制之后011|100  相加得到111=7

4|4

转换为二进制之后100 |100  相加得到100=4

8|3

转换为二进制之后1000 |011  相加得到1011=11

以此类推,我在这里就不一一列举了,单竖杠“|”运算就是转换为2进制之后相加得到的结果!

JS 双竖线运算符

1、JS双竖线运算符:是或比较.如null||'1',返回'1';'2'||'1',返回'2'.即或运算符中,第一个为真,后面的就不用计算了.所以得'2'。

2、js 中 使用双竖线运算符"||",返回第一个有效值

var objOne = undefined || 1 || null || new Date();

var objTwo = new Date();

var objThree = objOne || objTwo;

alert(objThree.toString()); //out put "1"

总结

性能上的比较

逻辑运算符&& || 中,如果&&的第一个运算数是false,就不再考虑第二个运算数,直接返回false;如果||的第一个运算数是true,也不再考虑第二个运算数,直接返回true。而&和|运算符却不是这样的,它们总是要比较两个运算数才得出结果,因而性能上&&和||会比&和|好。

功能用法

&&和||只能进行逻辑运算,而&和|除了可以进行"逻辑运算"外,还可以进行位运算

位运算

&和|本是位运算符,之所以可以进行"逻辑运算",是由于JS是无类型的语言、各数据类型可以自由转换这一特性决定的,当用&和|进行"逻辑运算"时,实际上true被转换成1,false被转换成0,再进行逐位运算:

document.write(true & false); //JS,结果为0

上面这句,实例等同于逻辑运算被转化成下面的位运算,并执行:

document.write(1 & 0); //JS,结果为0

也正是由于&和|是逐位运算符,才出现了第一点中所说的,它们总是要比较两个运算数才得出结果,才导致性能会比&&和||低一些。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

一个竖杠在python中代表什么_详解js运算符单竖杠“|”与“||”的用法和作用介绍...相关推荐

  1. 详解python中的用法_详解python中*号的用法

    1.表示乘号 2.表示倍数,例如: def T(msg,time=1): print((msg+' ')*time) T('hi',3) 打印结果(打印3次): hi hi hi 3.单个 * (1) ...

  2. python中 的用法_详解python中@的用法

    python中@的用法 @是一个装饰器,针对函数,起调用传参的作用. 有修饰和被修饰的区别,@function作为一个装饰器,用来修饰紧跟着的函数(可以是另一个装饰器,也可以是函数定义). 代码1 结 ...

  3. python中集合变量_详解python的变量缓存机制

    变量的缓存机制 变量的缓存机制(以下内容仅对python3.6.x版本负责) 机制 只要有两个值相同,就只开辟一个空间 为什么要有这样的机制 在计算机的硬件当中,内存是最重要的配置之一,直接关系到程序 ...

  4. python中squeeze函数_详解pytorch中squeeze()和unsqueeze()函数介绍

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  5. 详解python中的用法_详解python中@的用法

    python中@的用法 @是一个装饰器,针对函数,起调用传参的作用. 有修饰和被修饰的区别,作为一个装饰器,用来修饰紧跟着的函数(可以是另一个装饰器,也可以是函数定义). 代码1 def funa(d ...

  6. python中延时函数_详解python中实现延时回调普通函数

    这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 前言 ...

  7. python中index函数_详解python中的index函数用法

    1.函数的创建 def fun(): #定义 print('hellow') #函数的执行代码 retrun 1 #返回值 fun() #执行函数 2.函数的参数 普通参数 :要按照顺序输入参数 de ...

  8. python中byte类型_详解python string类型 bytes类型 bytearray类型

    搜索热词 一.python3对文本和二进制数据做了区分.文本是Unicode编码,str类型,用于显示.二进制类型是bytes类型,用于存储和传输.bytes是byte的序列,而str是unicode ...

  9. python中递归函数写法_详解python中递归函数

    函数执行流程 def foo1(b,b1=3): print("foo1 called",b,b1) def foo2(c): foo3(c) print("foo2 c ...

最新文章

  1. 使用PHP CURL 模拟HTTP实现在线请求工具-toolfk程序员工具网
  2. linux操作这样用视频,Linux下使用mencoder对视频进行操作
  3. 网站的SEO以及它和站长工具的之间秘密
  4. 【flink】flink 复杂事件处理 CEP
  5. Flutter基础—根据用户输入改变控件
  6. http请求转为https请求 java_如何将Javaweb工程的访问协议由http改为https及通过域名访问?...
  7. ubuntu 卡死 安装 桌面_Ubuntu下图形界面卡死解决办法
  8. 易用宝项目记录day8-Excel的导入导出
  9. Allegro中 板框 尺寸标注
  10. 利用zxing生成二维码
  11. 【免费赠送源码】Springboot理发店线上预约排队的设计与实现 7vsz2计算机毕业设计-课程设计-期末作业-毕设程序代做
  12. 组件,控件,用户控件
  13. Addition Chains
  14. php打印10以内减法表,10以内加减法口诀表(A4纸可以打印)
  15. Basic -- Test harness
  16. IEEE Fellow梅涛:计算机视觉的前沿进展与挑战
  17. 轻量级的Java快速开发平台
  18. 【计算机网络】数据链路层——PPP协议和HDLC协议/数据链路层设备
  19. document.getElementById详解
  20. 了解python编程语言_《了》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...

热门文章

  1. 学习linux从哪开始,刚刚接触Linux,一头雾水,不知道从哪里开始学习。
  2. Latex Mathematical Symbols | LATEX数学符号 | markdown
  3. Microsoft JScript 运行时错误: 对象不支持此属性或方法
  4. JAVA数组(输出26个英文字母)
  5. 蜡笔小新经典话语---注意其语义的规则
  6. 蜡笔小新之父臼井仪人的真实相貌
  7. MySql 获取年月日 时分秒、年月日、年月、年、月
  8. 【Rockchip】一、瑞芯微 Linux SDK软件包的解压和部署
  9. python模拟简单充值系统_【自编】使用Python实现Dayz 玩家银行充值自动到账
  10. java properties containskey_java.util.TreeMap.containsKey()方法实例