+,-自动转换为number

  1. // 算术计算中的自动转换+,-
  2. // 在算术计算中先将数据转换为number,再计算
  3. var a = true;
  4. var b = "13";
  5. var c = b-a;
  6. // var c= Number(b)-Number(a);
  7. console.log(c);

“+”有一边为字符串,输出为字符串

  1. /*
  2. +特殊:只要有一边为字符串,+是拼接符,结果还是字符串
  3. */
  4. var a = true;
  5. var b = "10";
  6. var c =a+b;
  7. console.log(c);
  8. var d = "10";
  9. var f = 1;
  10. console.log(d+f);

NaN和任何数值去计算,结果都会输出NaN

  1. // NaN和任何数值去计算,结果都会输出NaN
  2. var a = "10";
  3. var b = 1;
  4. var c = true;
  5. console.log(a-b+c); //10
  6. console.log(a+b-c); //100
  7. console.log(a+c-b); //a+c == 10true 10true-1 ==NaN
  8. //String(a)+String(b)-Number(c);
  9. // Number(a)-Number(b)+Number(c)
  10. //"10true"-1

比较运算

  1. // "",NaN,0-->false
  2. // >,<,== 返回的是boolean
  3. // 先将两边的值转为number,再比较
  4. // NaN和任何值做计算,结果一定是NaN
  5. var a = true;
  6. var b = "10";
  7. var c = "hello"
  8. console.log(a>b); //Number(a)>Number(b);//false
  9. console.log(a>c); //Number(a)>Number(c);Number(c) == NaN//false
  10. console.log(Boolean(NaN)) //false

输出为false

undefined , NaN , "" , 0,null,false

运算

  1. //Number(""),Number(" "),Number(null) 0
  2. console.log(false == ""); //true
  3. console.log(true == 1); //true
  4. console.log(null == undefined);
  5. console.log(undefined == false); //false
  6. console.log(1 == "1");
  7. /*
  8. ==运算中
  9. 1.只有有一边为boolean,先将两边转为number
  10. 2.如果一边为string,一边为number,先将两边转为number
  11. 3.null == undefined
  12. 4.null和undefined不能转化成其他值
  13. */

算术运算

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

比较运算

  1. // 先将两边的值转换为Number再比较
  2. // >,<,==,>=,<=,!=
  3. var a = true;
  4. var c = 1;
  5. console.log(a==c); //true
  6. console.log(a=="1");//true
  7. console.log(2>=1);
  8. console.log(2!=3);

逻辑运算

  1. /* 逻辑运算时是将两边的值转换为boolean再运算 */
  2. // && 逻辑与 只有两边为true,结果才为true
  3. // || 或 只要一边为true,结果就为true
  4. // ! 取反
  5. console.log(3>2 && 4>3);
  6. console.log(3>2 && 4<3); //true && false
  7. console.log(3<2 && 4>3); //false && true
  8. console.log(16>17 || 15>10);// false || true
  9. console.log(16<17 || 15<10);// true || false
  10. console.log(!(3>4)) // !false

赋值运算

  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

三元表达式

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

++自增

  1. // ++;
  2. /*
  3. 1.++单独使用的时候都会自增(放在前面和后面都一样)
  4. */
  5. var a = 10;
  6. ++a; //a=a+1;
  7. console.log(a);

++放前放后

  1. /*
  2. 1.++后
  3. 2.++前面
  4. */
  5. /*
  6. ++放前面先自增,后运算
  7. ++放后面先运算,再自增
  8. */
  9. var a = 10;
  10. var c = 20;
  11. b =++a + 2;
  12. d = c++ +3;
  13. console.log(b); //13
  14. console.log(a);
  15. console.log(d);
  16. console.log(c);

  1. /*
  2. -- 放前面先自减,后运算
  3. -- 放后面先运算,再自减
  4. */
  5. var a = 10;
  6. a--; //a = a-1;
  7. console.log(a);
  1. var a = 10;
  2. b = a-- -1; //b=9 a = 9
  3. console.log(b);
  4. console.log(a);

—前面

  1. var a = 20;
  2. b = --a+1; //a = 19 b=20;
  3. console.log(a);
  4. console.log(b);

|| 或

  1. /*
  2. || 有一边为true,结果就为true。遇到true,就会返回
  3. */
  4. var b = 0 ||"abc";
  5. var c = "abc" || 1;
  6. var d = 0 || NaN;
  7. console.log(b);
  8. console.log(c);
  9. console.log(d);

&& 与

  1. /*
  2. && 两边都为true,结果才为true
  3. 1.遇到false的情况,直接返回
  4. */
  5. console.log("abc" && 10);
  6. console.log( 0 && "abc");

!非

  1. var a = 190;
  2. console.log(!a);