1、 减法运算符 ( - )

  1. // 在算术计算中先将数据转换为number,再计算
  2. var a = true;
  3. var b = "13";
  4. var c = b-a;
  5. /* var c = Number(b)-Number(a) */
  6. console.log(c) // 输出12
  7. "true1"-1 // NaN

2、 加法运算符 ( + )

  1. + 运算符 特殊:遇到字符串变为 拼接符
  1. // + 运算符 特殊:遇到字符串变为 拼接符
  2. var a = "10";
  3. var b = 1;
  4. var c = true;
  5. console.log(a+b-c) // 101-1= 100
  6. console.log(a+b+c) // 101true
  7. console.log(a-b+c) // 10
  8. console.log(a+c-b) // NaN
  9. // NaN和任何数值去计算,结果都是NaN
  10. "1"-9+"true"-parseInt(12.34) // NaN
  11. "9"-8+"false" // 1false
  12. "9"-8-"false" // NaN

3、 比较运算符 ( >,<,==,===)

  1. >,<,== 返回的是boolean<br /> 先将两边的值转为number,再比较<br /> NaN和任何值作比较,结果都为NaN <br /> ===不仅值相等,类型也要相同
  1. var a = true;
  2. var b = "10"
  3. var c = "hello"
  4. console.log(a>b) // Number(a)>Number(b) 1>10 false
  5. console.log(a>c) // Number(a)>Number(c) 1>NaN false
  6. console.log(Boolean(NaN)) // false
  7. // NaN和任何值作比较,结果都为NaN
  8. console.log(3=="3.00"); //true
  9. console.log(3==="3")

特殊字符串与数字比较

  1. 1-1 纯数字符串会自动转换为数字,true转为1false转为0,null转为0
  2. 1-2 但做相等或全等判断时,null不等于0;不等于任何值
  3. 1-3 undefined在全等运算中还是先转为数字类型,它是NaN所以和其他值运算,结果为false
  4. console.log(null == false) //false
  5. console.log(null == undefined) //false
  6. console.log(undefined == false) //false
  7. console.log(false == 0)

4、 值为 false的情况

undefined,””,NaN,0 ,null—> false

  1. var a;
  2. console.log(a) // undefined
  3. console.log(Boolean(a)) //false
  4. console.log(Boolean(null)) // false