8.1 算术运算(+ - * / %)

两边都转换为number值 再运算

  1. // + - * / %
  2. var a =3;
  3. var b = 3.3;
  4. var c = 4;
  5. console.log(a*b) // 9.899999999999999
  6. console.log(b/a) // 1.0999999999999999
  7. console.log(c%a) // 1

8.2 比较运算 (>,<,=,==,===,!)

先将两边的值转为number,再比较 结果返回boolean

  1. console.log(true>0);
  2. console.log("11">10);
  3. console.log("9">10);
  4. console.log("9"==9);//=赋值 ==相等
  5. console.log("6"!=true);
  6. //===不仅值要相等,数据类型也要一样
  7. console.iog("6"===6);
  8. console.log(5===5);
  9. var b = Number(null);
  10. var c = Number(undefined);
  11. console.log(b);//0
  12. console.log(c);//NaN
  13. //null特殊情况 null在运算中,不会转换成number,他不等于任何值。
  14. console.log(null==undefined) //true
  15. console.log(Boolean(NaN)) //false
  16. console.log(null==0) //false
  17. console.log(null==false) //false
  18. console.log(undefined==false) //false
  19. console.log(undefined==0) //false

8.3 逻辑运算 (&&,||,!)

先将两边的值转为boolean,再进行运算,结果返回boolean
&& 的优先级高于 ||

  1. // &&逻辑与 两边都为true,结果才为true 返回最后一个条件 遇到false直接返回
  2. // ||逻辑或 只要有一边为true 结果一定为true(碰到true就直接返回)
  3. 两边都为false/true,结果为false/true
  4. // !逻辑非 取反
  5. console.log(10>3 && 12>5)
  6. console.log(10>4 && 4>50)
  7. console.log(10>3 || 4>4)
  8. console.log(!(5>4))
  9. console.log(!!false)
  10. console.log("abc" && 10) // 10
  11. console.log(0 && "abc") // 0
  12. //两边为true 放回最后一个 碰到false直接返回
  13. var b = 0 || "abc"
  14. var c = "abc" || 1;
  15. var d = 0 || NaN
  16. console.log(b) // abc
  17. console.log(c) // abc
  18. console.log(d) // NaN
  19. //遇到true直接返回
  20. //总结:逻辑运算是先将两边的值转换成boolean,再进行运算

8.4 赋值运算 (+=,-=,/=,%=)

  1. var a = 2;
  2. /* a= a+2; */
  3. a+=2;
  4. var b = 10;
  5. /* b = b-4 */
  6. b-=4;
  7. console.log(a);
  8. console.log(b);

8.5 三元表达式

  1. //是true就输出问好后面第一段
  2. false就输出问好后面第二段
  3. var b = (4<3)?"大于":"小于";
  4. console.log(b)
  5. /*
  6. var b = condition? exp01: exp02;
  7. condition-- true 输出exp01
  8. condition-- false 输出exp02
  9. */