运算符

基本运算符

代码示例

  1. var a = 1, b = 2;
  2. // 加法运算
  3. console.log(3 === a + b);
  4. // 减法运算
  5. console.log(-1 === a - b);
  6. // 乘法运算
  7. console.log(2 === a * b);
  8. // 除法运算
  9. console.log(0.5 === a / b);
  10. // 取余运算
  11. console.log(1 === a % b);

加法运算(+)也可以用作字符串的拼接。

  1. var a = 'swan' , b = ' sjs';
  2. // 字符串拼接
  3. console.log('swan sjs' === a + b);

一元运算符

代码示例

  1. var a = 10, b = 20;
  2. // 自增运算
  3. console.log(10 === a++);
  4. console.log(12 === ++a);
  5. // 自减运算
  6. console.log(12 === a--);
  7. console.log(10 === --a);
  8. // 正值运算
  9. console.log(10 === +a);
  10. // 负值运算
  11. console.log(0-10 === -a);
  12. // 否运算
  13. console.log(-11 === ~a);
  14. // 取反运算
  15. console.log(false === !a);
  16. // delete 运算
  17. console.log(true === delete a.fake);
  18. // void 运算
  19. console.log(undefined === void a);
  20. // typeof 运算
  21. console.log("number" === typeof a);

位运算符

代码示例

  1. var a = 10, b = 20;
  2. // 左移运算
  3. console.log(80 === (a << 3));
  4. // 无符号右移运算
  5. console.log(2 === (a >> 2));
  6. // 带符号右移运算
  7. console.log(2 === (a >>> 2));
  8. // 与运算
  9. console.log(2 === (a & 3));
  10. // 异或运算
  11. console.log(9 === (a ^ 3));
  12. // 或运算
  13. console.log(11 === (a | 3));

比较运算符

代码示例

  1. var a = 10, b = 20;
  2. // 小于
  3. console.log(true === (a < b));
  4. // 大于
  5. console.log(false === (a > b));
  6. // 小于等于
  7. console.log(true === (a <= b));
  8. // 大于等于
  9. console.log(false === (a >= b));

等值运算符

代码示例

  1. var a = 10, b = 20;
  2. // 等号
  3. console.log(false === (a == b));
  4. // 非等号
  5. console.log(true === (a != b));
  6. // 全等号
  7. console.log(false === (a === b));
  8. // 非全等号
  9. console.log(true === (a !== b));

赋值运算符

代码示例

  1. var a = 10;
  2. a = 10; a *= 10;
  3. console.log(100 === a);
  4. a = 10; a /= 5;
  5. console.log(2 === a);
  6. a = 10; a %= 7;
  7. console.log(3 === a);
  8. a = 10; a += 5;
  9. console.log(15 === a);
  10. a = 10; a -= 11;
  11. console.log(-1 === a);
  12. a = 10; a <<= 10;
  13. console.log(10240 === a);
  14. a = 10; a >>= 2;
  15. console.log(2 === a);
  16. a = 10; a >>>= 2;
  17. console.log(2 === a);
  18. a = 10; a &= 3;
  19. console.log(2 === a);
  20. a = 10; a ^= 3;
  21. console.log(9 === a);
  22. a = 10; a |= 3;
  23. console.log(11 === a);

二元逻辑运算符

代码示例

  1. var a = 10, b = 20;
  2. // 逻辑与
  3. console.log(20 === (a && b));
  4. // 逻辑或
  5. console.log(10 === (a || b));

其他运算符

代码示例

  1. var a = 10, b = 20;
  2. //条件运算符
  3. console.log(20 === (a >= 10 ? a + 10 : b + 10));
  4. //逗号运算符
  5. console.log(20 === (a, b));

运算符优先级

优先级运算符说明结合性
20( … )括号n/a
19… . …成员访问从左到右
… [ … ]成员访问从左到右
… ( … )函数调用从左到右
17… ++后置递增n/a
… —后置递减n/a
16! …逻辑非从右到左
~ …按位非从右到左
+ …一元加法从右到左
- …一元减法从右到左
++ …前置递增从右到左
— …前置递减从右到左
typeof …typeof从右到左
void …void从右到左
delete …delete从右到左
14乘法从左到右
… / …除法从左到右
… % …取模从左到右
13… + …加法从左到右
… - …减法从左到右
12… << …按位左移从左到右
… >> …按位右移从左到右
… >>> …无符号右移从左到右
11… < …小于从左到右
… <= …小于等于从左到右
… > …大于从左到右
… >= …大于等于从左到右
10… == …等号从左到右
… != …非等号从左到右
… === …全等号从左到右
… !== …非全等号从左到右
9… & …按位与从左到右
8… ^ …按位异或从左到右
7… | …按位或从左到右
6… && …逻辑与从左到右
5… || …逻辑或从左到右
4… ? … : …条件运算符从右到左
3… = …赋值从右到左
… += …赋值从右到左
… -= …赋值从右到左
… = …赋值从右到左
… /= …赋值从右到左
… %= …赋值从右到左
… <<= …赋值从右到左
… >>= …赋值从右到左
… >>>= …赋值从右到左
… &= …赋值从右到左
… ^= …赋值从右到左
… |= …赋值从右到左
0… , …逗号从左到右