JS中的运算符(&、&&、|、||)

JS中的运算符

1. 逻辑运算符

js中的逻辑运算符有&&和||,与其他语言的逻辑运算符一样,返回结果为Boolean。

1.1 &&

说明:逻辑与运算
场景:a&&b

  • a为false,无需判断b,直接返回false
  • a为true,根据b返回值

1.2 ||

说明:逻辑或运算
场景:a||b

  • a为true,无需判断b,直接返回true
  • a为false,根据b返回值

1.3 执行顺序

说明:&&优先于||,左优先于右
场景:a||b&&c||d&&e,相当于a||(b&&c)||(d&&e),从左往右执行。
举例:

可在F12-console执行以下:
var a=new Object(),b=0,c=Number.NaN,d=1,e="Hello";
console.log(a || b && c || d && e);

执行结果为:
{}

分析:
1. 先执行b&&c,b=0=>b=false,因此b&&c<=>b
a||b && c||d && e<=>a||b||d&&e
2. 	再执行d&&e,d=1<=>d=true,因此d&&e<=>e
a||b||d&&e<=>a||b||e
3.a=new Object()<=>a=true无需执行后续,因此输出a,也就是new Object()

2. 位运算符

js中的位运算符有逻辑位运算符(&、|、^、~)和移位运算符(<<、>>、>>>),做二进制计算。

2.1 &

  1. 计算方式如下:
计算 结果
1&1 1
1&0 0
0&1 0
0&0 0
  1. 举例解析
console.log(12 & 5);
>4

解析:
12=>1100
5  =>0101
=>0100=>4

2.2 |

  1. 计算方式如下:
计算 结果
1|1 1
1|0 1
0|1 1
0|0 0
  1. 举例解析
console.log(12 | 5);
>13

解析:
12=>1100
5  =>0101
=>1101=>13

2.3 运算顺序

说明:&》|
举例:

console.log(12|5&12|5)
>13

解析:
1. 5&12=>4
12|5&12|5=>12|4|5
2. 12|4
12=>1100
4  =>0100
=>1100=>12
3.12|5=>13

3. 常见对象的布尔值

说明:6false外都是true

对象 Boolean
"" false
0 false
false false
null false
undefined false
NAN false
其他 true

4. 运算顺序

  • 位运算符》逻辑运算符
  • & 》| 》&& 》||
  • 其他运算符顺序详见另一篇文章
posted @ 2021-03-15 16:46  时间会有答案  阅读(676)  评论(0编辑  收藏  举报