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

两边都先转换为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

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

两边都先转换为number,再比较,返回的是 boolean

  1. var a = true
  2. var b = 1;
  3. console.log(a==b) // true
  4. console.log(a=="1") //true 两边都先转为number

特殊情况

==运算中
1.只要有一边为boolean,先将两边转为number
2.如果一边为string,一边为number,先将两边转为number
3.null == undefined
4.null和undefined不能转化成其他值

  1. console.log(false == "");//true
  2. console.log(true == 1); //true
  3. console.log(null == undefined);//true
  4. console.log(undefined == false);//false
  5. console.log(1 == "1");//true

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

两边都先转换为boolean,再判断,返回的是 boolean值

  1. // && 逻辑与 两个为true,结果才为true
  2. // || 或 只要有一个为true,结果就为true
  3. // ! 非
  4. console.log(3>2 && 4>3) // true && true 结果为true
  5. console.log(3>2 && 4<3) // true && false 结果为false
  6. console.log(11>5 || 3<4) // true || false 结果为true
  7. console.log(!(3>4)) //!false 结果为true

或运算的注意点

|| 有一边为true,结果就为 true,遇到true就会返回

  1. var b = 0 || "abc"
  2. var c = "abc" || 1;
  3. var d = 0 || NaN
  4. console.log(b) // abc
  5. console.log(c) // abc
  6. console.log(d) // NaN

与运算的注意点

**两边都为true,结果才为true 遇到false的情况,直接返回**

  1. console.log("abc" && 10) // 10
  2. console.log(0 && "abc") // 0

三元运算符

  1. // true 输出问号后面的第一段语句
  2. // false 输出问号后面的第二段语句
  3. var a = (4>5)?"4大于5":"4小于5";
  4. console.log(a)

赋值运算(+=,-=)

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