JS运算符

343 阅读1分钟

算术运算符

  • number 运算:
  1. 加减乘除

  2. 余数 x % 7

  3. 指数 x ** 3

  4. 自增自减 x++ / ++x / x-- / --x x在前,值为前,x在后,值为后

  5. 求值运算符 +x

  6. 负数运算符 -x

  • string 运算:连接运算 '123' + '456'

比较运算符

JS 三位一体

image.png

但是右边三个互不相等

忠告:永远不要使用 ==,用 === 代替,== 的问题在于,它总是自动类型转换

  • ===没有任何费解 基本类型看值是否相等,对象看地址是否相等
  • 额外记忆:
[] !== []
{} !== {}
NaN !== NaN

布尔运算符

  • 或且非
  1. ||
  2. &&
  3. !
  • 短路逻辑
  1. console && console.log && console.log('hi'),以防 console 不存在报错

  2. a = a || 100 a 的保底值,也可以用最新语法(完全没有问题的语法)

function add(n=0){
return n+1}

直接把保底值写在参数列表里,若是n不存在,则n=0,n的保底值就是0

二进制运算符

只对二进制数有效,0b开头表示是二进制写法

    • 或、与、否
  1. | 两个位都为0,则结果为0,否则为1
  2. & 两个都为1,才为1
  3. ~ 否,1变成0,0变成1
  4. 异或 ^ 两个位相同,则结果为0,否则为1
  5. 左移右移 << 和 >>
  6. 头部补零的右移运算符>>>

使用与运算符判断奇偶

代码

  • 偶数 & 1 = 0
  • 奇数 & 1 = 1

使用~, >>, <<, >>>, |来取整

代码

  • console.log(~~ 6.83) // 6
  • console.log(6.83 >> 0) // 6
  • console.log(6.83 << 0) // 6
  • console.log(6.83 | 0) // 6
  • console.log(6.83 >>> 0) // 6

使用^来交换 a b 的值

代码

var a = 5
var b = 8
a ^= b
b ^= a
a ^= b
console.log(a)   // 8
console.log(b)   // 5

新语法:

var a = 5
var b = 8
[a,b]=[b,a]