运算符与表达式

运算符和表达式的概念

  • 运算符:连接一个或以上的操作数的中间的符号就叫运算符

    10 + 20 : 10,20操作数    运算符:+
    a = 10;  运算符:=
    a++;   运算符: ++
  • 表达式:由操作数和运算符组成的式子就叫表达式

    10 + 10 : 表达式
    a = 10 : 表达式
    a++ :表达式
  • 运算符的分类

    运算符的分类:算术运算符,赋值运算符,逻辑运算符,比较运算符,三目运算符
    表达式的分类:算术表达式,赋值表达式,逻辑表达式,比较表达式,三目表达式

2.2 算术运算符

  • 算术运算符分类:+ - * / % ++ --

  • 基本操作

    //算术运算符分类:+ - * /  %(取余,求模) ++ --
    console.log(10 + 4);  //14
    console.log(10 - 4);  //6
    console.log(10 * 4);  //40
    console.log(10 / 4);  //2.5  
    console.log(10 % 4);  //2
    ​
  • 特殊

    //1. % 的作用  n的倍数
    var n = 9;
    console.log(n % 2 == 0); //偶数
    ​
    //2.精度缺失:运算过程中,小数运算可能会出现偏差
    console.log(0.1 + 0.2); //0.30000000000000004
    console.log(0.1 * 0.7); //0.06999999999999999
    console.log((0.1 * 0.7).toFixed(2)); //0.07
    ​
    //3.隐式转换:在运算过程中,数据自动进行的数据类型转换
    //隐式转换的规律:都会转换为number进行运算,+号遇到字符串就会变成连接符
    console.log(100 * false);  //0   false--->0
    console.log("100" - 10); //90 number    "100"--->  100
    console.log(10+null); //10  null --->0
    console.log("10" + 10); //"1010"  10 --> "10"
  • ++自增

    • 基础操作

      //++ : 自加1,自增
      var a = 10;
      a++;  //a = 10  a = 11
      ++a;  //a = 11  a =12
      console.log(a); //12
      ​
      //运算,打印过程中,++在前,先自加,后运算(打印), ++在后,先运算(打印),后自加
      var n = 10;
      var m = ++n; // m = n ;   n = 11  ++在前,先自加,后运算(打印)
      console.log(n,m); //11   11
      ​
      ​
      var x = 10;
      var y = x++;  //++在后,先运算(打印),后自加  y = 10   x = 11
      console.log(x,y); //11 10
    • 练习

      //练习1:
      var s = 10;
      var t = 10;
      console.log(s++,++t); //10,11             s = 11  t = 11
      console.log(s,t);//11 11
      ​
      //练习2:
      var a = 10;
      var b = ++a + a++ + a++; //b = 11 + 11 + 12 = 34     a = 13
      var c = a++ + ++b + b++; //c = 13 + 35 + 35 = 83    a = 14 ,b = 36
      console.log(a,b,c); //a = 14  b = 36  c = 83  
      ​
      //练习3:
      var x = 10;
      var y = --x  +  x--  +  --x  //y = 9 + 9 + 7 = 25   x = 7
      var z = y--  +  --y  +  x--; //z = 25 + 23 + 7 = 55   x = 6,y = 23
      console.log(x,y,z); //6   23   55

2.3 赋值运算符

  • 赋值运算符: = += -= *= /= %=

    //赋值运算符:  =   +=  -=  *=  /=  %=
    var a = 10 + 10;  //将等号右边的值赋值给左边的变量
    ​
    //+=
    a += 2; //累加  等价于  a = a + 2;
    console.log(a); //22
    ​
    a -= 10;  //a = a - 10
    console.log(a); //12

2.4 比较运算符

  • 比较运算符: > < <= >= == != \=\==(全等,恒等) !==

     //比较运算符: >   <   <=    >=  ==   !=  \=\==(全等,恒等)  !==
    console.log(30 > 20); //true, 比较运算符的结果:true  false
    ​
    //1.两个字符串比较,一位一位比较,而且比较的是字符编码   "0" -- 48 , "A"--65   "a"--97
    console.log("10000" < "2"); //true
    console.log("a" > "A"); //97 > 65  true
    ​
    //2. == ===的区别?(笔试题)
    console.log(10 == "10"); //true : 比较运算符再进行运算的时候,也会进行隐式转换,尽量转换为number
    console.log(10 === "10"); //false 不会进行隐式转换,必须一模一样才相等
    ​
    //3. null在判断相等的时候,不会进行隐式转换,null和自己和undefined相等,其他都不相等
    console.log(null >= 0); //true
    console.log(null <= 0); //true
    console.log(null == 0); //false
    console.log(null == null); //true
    console.log(null == undefined); //true

2.5 逻辑运算符

  • 逻辑运算符:&& || !

  • 基础用法

     //逻辑运算符:&&  ||  !
    var s = 55;
    //代码中运算,是两两运算的,数学中的习惯可能无法得到正确结果
    console.log(60 > s > 40); //false
    //两个两个写,使用&&  || 进行连接
    ​
    //1. && 连接两个或两个以上的条件,条件都为真结果才为真
    console.log(60 > s && s > 40);  //true
    ​
    ​
    //2. || 连接两个或两个以上的条件,只要有一个条件为真结果就为真
    //考试成绩< 10      >100分  打一顿
    console.log(s<10 || s>100);   //false
    ​
    ​
    //3. 取反 (结果只会是true,false
    console.log(!1); //false
    console.log(!null); //true
  • //4.1 与(&&)短路
    //&&:两真为真,如果第一个条件为假,  第二个条件不执行
    var a1 = 1;
    var b1 = 1;
    var c1 = --a1 && --b1;  //计算右边的结果,执行到那,将那部分的值赋值给前面的变量
    //0   c1 = a1 = 0
    console.log(a1,b1,c1); //0 1 0
    ​
    //&& :两真为真,如果第一个条件为真,  再执行第二个条件
    var a2 = 10;
    var b2 = 2;
    var c2 = --a2 && --b2;
    //9       1
    console.log(a2,b2,c2); //9 1 1
    ​
    ​
    //4.2 或(||)短路
    //|| : 一真为真:如果第一个条件为假,再执行第二个条件
    var x1 = 1;
    var y1 = 10;
    var z1 = --x1 || --y1; 
    //0      9
    console.log(x1,y1,z1); //0,9,9
    ​
    //||:一真为真:如果第一个条件为真,第二个条件不执行
    var x2 = 10;
    var y2 = 10;
    var z2 = --x2 || --y2;
    //       9         10
    console.log(x2,y2,z2); //9,10,9

2.6 三目运算符

  • 作用:用于判断(是一个低配版的条件判断)

  • 语法:条件 ? 条件成立执行的代码(不能加分号,只能写一行语句) : 条件不成立执行的代码

    //语法:条件 ? 条件成立执行的代码 : 条件不成立执行的代码
    //如果:有钱 > 10000 ,有钱:退休  没钱:搬砖
    var money = 160;
    money > 10000 ? console.log("退休,环游世界"):console.log("搬砖赚钱");
    ​
    var age = 10 > 20 ? 45 : 18;
    console.log(age); //18
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值