js &、|、^和~(逻辑运算符)
“&”运算符
- “&”(位与)
– 运算 27&5
| 第一个数的位值 | 第一个数的位值 | 运算结果 | 运算过程 |
|---|---|---|---|
| 1 | 0 | 0 | 1与0=0 |
| 1 | 0 | 0 | 1与0=0 |
| 0 | 1 | 0 | 0与1=0 |
| 1 | 0 | 0 | 1与0=0 |
| 1 | 1 | 1 | 1与1=1 |
结果为二进制00001转为10进制为1
- 运用案例 判断奇偶数
var n = 3
console.log(n & 1 ? "n是奇数" : "n是偶数")
“|”运算符
- “&”(位或)
– 运算 27|5
| 第一个数的位值 | 第一个数的位值 | 运算结果 | 运算过程 |
|---|---|---|---|
| 1 | 0 | 0 | 1或0=1 |
| 1 | 0 | 0 | 1或0=1 |
| 0 | 1 | 0 | 0或1=1 |
| 1 | 0 | 0 | 1或0=1 |
| 1 | 1 | 1 | 1或1=1 |
结果为二进制11111转为10进制为31
- 运用案例 取整
var n1 = 1.79
var n2 = 30.3
var n = n1 | 0 //1
var 2 = n2 | 0 //30
“^”运算符
- “^”(位异或)
– 运算 27^5
| 第一个数的位值 | 第一个数的位值 | 运算结果 | 运算过程 |
|---|---|---|---|
| 1 | 0 | 0 | 1位异或0=1 |
| 1 | 0 | 0 | 1位异或0=1 |
| 0 | 1 | 0 | 0位异或1=1 |
| 1 | 0 | 0 | 1位异或0=1 |
| 1 | 1 | 1 | 1位异或1=0 |
结果为二进制11110转为10进制为30
“~”运算符
- “~”(位非)
– 运算 27~5
| 第一个数的位值 | 第一个数的位值 | 运算结果 | 运算过程 |
|---|---|---|---|
| 1 | 0 | 0 | 1位非0=1 |
| 1 | 0 | 0 | 1位非0=1 |
| 0 | 1 | 0 | 0位非1=1 |
| 1 | 0 | 0 | 1位非0=1 |
| 1 | 1 | 1 | 1位非1=0 |
结果为二进制11110转为10进制为30
- 运用案例 直接取整 字符串数字取整
var n1 = 1.79
var n2 = "30.3”
var n = ~~n1 //1
var 2 = ~~n2 //30
