# “&”运算符
“&”运算符(位与)用于对两个二进制操作数逐位进行比较,并根据下表所示的换算表返回结果。
第一个数的位值 | 第二个数的位值 | 运算结果 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
// 12 和 5 进行位与运算,则返回值为 4。
console.log(12 & 5); //返回值4
// 可以判断奇偶数
console.log(3 & 1); //返回值 1
console.log(4 & 1); //返回值 0
1
2
3
4
5
6
7
2
3
4
5
6
7
# “|”运算符
“|”运算符(位或)用于对两个二进制操作数逐位进行比较,并根据如表格所示的换算表返回结果。
第一个数的位值 | 第二个数的位值 | 运算结果 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
//12 和 5 进行位或运算,则返回值为 13。
console.log(12 | 5); //返回值13
1
2
3
2
3
# “^”运算符
“^”运算符(位异或)用于对两个二进制操作数逐位进行比较,并根据如表格所示的换算表返回结果。
第一个数的位值 | 第二个数的位值 | 运算结果 |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
//12 和 5 进行位异或运算,则返回值为 9。
console.log(12 ^ 5); //返回值9
1
2
3
2
3
# “~”运算符
“~”运算符(位非)用于对一个二进制操作数逐位进行取反操作。
- 第 1 步:把运算数转换为 32 位的二进制整数。
- 第 2 步:逐位进行取反操作。
- 第 3 步:把二进制反码转换为十进制浮点数。
对 12 进行位非运算,则返回值为 -13。
console.log( ~ 12 ); //返回值-13
//可配合 indexOf
if (~indexOf('...')) {
//存在
} else {
// 不存在
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10