||和&&的区别和| 和$的区别

一、或 ||

false || false
false || true //看后面的
--------------------------
true || true
true || false //看前面的

二、非 &&

false && false
false && true //看前面的
--------------------------
true && true
true && false //看后面的

补充(&和 | 既是逻辑运算符也是位运算符,而&&和||只是逻辑运算符)

一.(1)当&与&&同为逻辑运算符时,它们都用于连接两个Boolean类型的表达式,当&和&&的两端表达式同时为真时,表达式的结果为真,只要有一端为假,那么表达式结果为假。从用法上来看,&和&&并没有什么区别,比如我们可以写两个表达式:
3>5&3>2; 3>5&&3>2;
两个运算符都可以这么用,但是不同的是,当在判断这个表达式的真或假的时候,两者的判断次数不同;
当使用&运算符: 计算机在判断表达式的值的时候,先判断3>5 的值为假,然后再判断3>2的结果为真,于是最后的结果是 假&真 为假;
但是当我们使用&&运算符的时候:计算机先判断3>5 的值为假,此时表达式的结果一定为假,所以计算机就不再往下判断了,判定表达式结果为假。

逻辑运算符&与&&的区别是:
& 无论左边结果是什么,右边还是继续运算;
&&当左边为假,右边不再进行运算。
但是两者的结果是一样的。

(2)当|和||的两端表达式同时为假时,表达式的结果为假,只要有一端为真,那么表达式结果为真。
所以同理,我们可以知道|与||的区别:
| 无论左边结果是什么,右边还是继续运算;
||当左边为真,右边不再进行运算。
但是两者的结果是一样的。
所以&&和||是比较高效那么一点点。

二.&和 | 做位运算符,做二进制位之间的与运算:
比如 6&3=110&011=010=2
6|3=110|011=111=7

# 三、位运算符 |
>两个位只要有一个为1,那么结果都为1。否则就为0
```javascript
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

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

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

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

31&2  结果为2

理由:31的二进制为11111,2的二进制为10  11111&00010的结果为00010,即2

四、位运算符 &

两个位只要有一个为1,那么结果都为1。否则就为0

31|2 
结果为31  31的二进制为111112的二进制为10 11111|00010的结果为11111,即31

链接: https://www.jb51.net/article/96521.htm.
链接: https://www.cnblogs.com/jockr/p/11131527.html.
链接: https://blog.csdn.net/qq_36583051/article/details/81873424.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值