表达式与操作符

315 阅读2分钟

表达式种类

算数、关系、逻辑、赋值、综合

1. 算数运算

1.1 % 取余运算

取余运算也叫做 “求模运算”,用百分号 “%”表示。

  • a % b 表示求a除以b的余数,不关心整数部分,只关心余数
11 % 4// 3 余数是3
4 % 2;  // 0  整除,余数是0
3 % 9;  // 3  商0,余数是3

1.2 隐式类型转换

假如参与算数运算的某操作数不是数字型,那么JavaScript会自动调用Number()函数,先转换再计算

true + 1; // 2  Number(true) + 2 

1.3 toFixed()方法保留指定的小数位数

在JavaScript中,有些小数的数学运算不是很精准

0.1 + 0.2   // 0.30000000000000004

使用toFixed()方法保留小数位数

(0.1 + 0.2).toFixed(1);  // 0.3

1.4 幂和开根号

  • 幂运算:Math.pow()
Math.pow(2, 3)  // 8
Math.pow(3, 2)  // 9
  • 开根号
Math.sqrt(81)   // 9
Math.sqrt(-81) // NaN

1.5 向上、向下取整

  • Math.ceil() 向上取整;
  • Math.floor() 向下取整
Math.ceil(3.4)   // 4
Math.ceil(-3.4)  // -3

Math.floor(3.4)  // 3
Math.floor(-3.4) // -4

2. 关系运算

2.1 关系运算符

等于      ==
不等于    !=
全等于    ===
不全等于  !==

2.2 等于 和 全等于 的区别

  • 等于在检查两个操作数是否相等时,会尝试强制类型转换;
  • 全等于则会比较类型
true == 1;   // true
true === 1;  // false

2.3 相等的特殊值

undefined == null    // true
undefined === null  // false

2.4 NaN不自等

NaN == NaN    // false
NaN === NaN  // false

2.5 判断变量是否为NaN

2.5.1 isNaN()函数
isNaN(NaN)  // true
isNaN(5)    // false

某些不能强制转换为数值的非数值转换为数值的时候,也会得到NaN

isNaN('1加1')  // true
isNaN(undefined) // true
isNaN(null)      //false

3. 逻辑运算

3.1 逻辑运算符

!   非
&&  与
||  或

3.2 非运算

  • 也可以称为 “置反运算”
  • ! 是一个 “单目运算符”,只需要一个操作数
  • 结果一定是布尔值

3.2.1 使用两个 !来判断布尔值

!! true  // true
!! 0     // false
!! ''    // false
!! '123' // true

3.3 与运算

&& 表示 “并且”,口诀:都真才真

true && true    // true
true && false   // false
false && false  // false

3.3.1 短语与

a && b运算中: a真,表达式值为b; a假,表达式值为a

3.4 或运算

|| 表示 “或者”,口诀:有真就真

true || true    // true
true || false   // true
false || false  // false

3.4.1 短语或

a && b运算中: a真,表达式值为a; a假,表达式值为b

3.5 逻辑运算优先级

非-->与-->或

4. 综合运算顺序

非运算-->数学运算-->关系运算-->逻辑运算