第3章:JavaScript运算符

本章目标

  1. 掌握赋值运算符
  2. 掌握算术运算符
  3. 掌握比较运算符
  4. 掌握逻辑运算符
  5. 掌握复合运算符

课程回顾

  1. 什么是变量?
  2. 变量的使用步骤?
  3. 声明变量用什么关键字?
  4. 变量名命名规则是什么?
  5. JavaScript中的数据类型有那些?

讲解内容

1. 赋值运算符

  1. 概念:向变量赋值,将右边的值赋值给左边的变量

  2. 语法:

    var 变量名=值;

    变量名=值;

  3. 例如:

    1
    2
    3
    var name="张三";
    var age=20;
    score=90;

2. 算术运算符

  1. 概念:算数运算符用于对数字执行算数运算,又称:数学运算符

    image-20211215090933228

  2. 例如:

    1
    2
    3
    4
    5
    6
    7
    8
    var num1=10;
    var num2=5;

    var jia=num1+num2;//15
    var jian=num1-num2;//5
    var cheng=num1*num2;//50
    var chu=num1/num2;//2
    var yu=num1%num2;//0,取余数

    image-20211215091710922

    注意:

    1. 被除数不能变0,上例的num2=0;结果则为:Infinity,代表无穷的意思

    image-20211215091959004

  3. ++、–运算符

    1. ++运算符:

      概念:递增运算符,每次加1

      1
      2
      3
      var num=10;
      num++;//相当于:num=num+1;
      console.log(num);//结果为11,在num=10的基础上加1

      注意事项:

      同时使用变量和递增运算符时,根据++的位置计算结果是不一样的。

      1. ++变量名:++在变量名前面

        1
        2
        var num=10;
        console.log(++num);//结果为11,先计算+1,再控制台输出结果
      2. 变量名++:++在变量名后面

        1
        2
        3
        var num=10;
        console.log(num++);//结果为10,先控制台输出结果,再计算+1
        console.log(num);//结果为11
    2. –运算符:

      概念:递减运算符,每次减1

      1
      2
      3
      var num=10;
      num--;//相当于:num=num-1;
      console.log(num);//结果为9,在num=10的基础上减1

      注意事项:

      同时使用变量和递增运算符时,根据++的位置计算结果是不一样的。

      1. –变量名:–在变量名前面

        1
        2
        var num=10;
        console.log(--num);//结果为9,先计算-1,再控制台输出结果
      2. 变量名–:–在变量名后面

        1
        2
        3
        var num=10;
        console.log(num--);//结果为10,先控制台输出结果,再计算-1
        console.log(num);//结果为9

3. 复合赋值运算符

  1. 概念:将算术运算符和赋值运算符组合

  2. 例如:var num+=10;

    var num+=10;

    相当于:

    var num=num+10;

  3. 常用的复合赋值运算符:

image-20211215094720564

  1. 例子如下图:

image-20211215094501088

4. 比较运算符

  1. 概念:比较运算符在逻辑语句中使用,以测定变量或值是否相等,返回结果肯定是Boolean类型

    image-20211215095411364

  2. 例子如下:

image-20211215095621154

  1. 详细讲解

    1. ==比较运算符,比较值是否相等,不考虑数据类型,案例如下:
    1
    2
    3
    4
    var num=10;
    console.log(num==10);//true
    console.log(num=="10");//true,num为number类型,“10”为字符串类型,但是不考虑类型直接比较内容
    console.log(num=="11");//false
    1. ===比较运算符,绝对等于,也就是说值和数据类型都要相同
    1
    2
    3
    4
    5
    6
    <script>
    var num=10;
    console.log(num==10);//true
    console.log(num==="10");//false,类型不匹配
    console.log(num=="11");//false
    </script>

    image-20211215100958840

    1. ?三元运算符:基于某些条件对变量进行赋值的条件运算符

      语法:

      variablename=(condition)?value1:value2

      var 变量名=比较表达式?值1:值2;

      解释:

      比较表达式如果返回结果为true,则值1赋值给变量,否则值2赋值给变量

      例如:

      如果变量 age 中的值小于 18,则向变量 voteable 赋值 “年龄太小”,否则赋值 “年龄已达到”。

      var voteable=(age<18)?”年龄太小”:”年龄已达到”;

5. 逻辑运算符

  1. 概念:逻辑运算符用于判定变量或值之间的逻辑。也是将多个比较运算结果组合成新的条件结果。

    image-20211215102128526

  2. 详细讲解

    1. &&:逻辑与

      理解:

      多个条件全部为true,则为true,只要有一个条件不满足为false,则后面的所有条件都不会判断,直接返回false.

      简单说:全部为true返回结果为true

      例如:

      1
      2
      3
      4
      5
      6
      7
      8
      案例1
      var a=10;
      var b=11;
      var isTrue=a>10 && b>10;//返回结果为false
      案例2
      var a=10;
      var b=11;
      var isTrue=a>=10 && b>10;//返回结果为true

      解释以上代码:

      案例1:因为a=10,a的值为10,那么a>10返回false,就算b>10为true,返回结果还是为false

      案例2:a>=10返回结果为true,b>10返回结果也为true,两个条件都为true,则返回结果为true

      思考如下题目,且分析:

      1. 题目一:如下代码,请问isTrue为true还是false,变量a,b,c的值分别是多少?为什么?
      1
      2
      3
      4
      5
      6
      7
      8
      <script>
      var a=10;
      var b=11;
      var c=11;

      var isTrue=a++>=b && ++b>c--;
      console.log("isTrue:"+isTrue+",a="+a+",b="+b+",c="+c);
      </script>
      1. 题目二:如下代码,将a++变成了++a,请问isTrue为true还是false,变量a,b,c的值分别是多少?为什么?
      1
      2
      3
      4
      5
      6
      7
      8
      <script>
      var a=10;
      var b=11;
      var c=11;

      var isTrue=++a>=b && ++b>c--;//将++放在a前面,结果又是什么?
      console.log("isTrue:"+isTrue+",a="+a+",b="+b+",c="+c);
      </script>
    2. ||:逻辑或

      理解:

      只要满足一个条件为true,则结果就为true,所有条件为false才能为false,在比较过程,只要有一个条件满足为true,则后面的条件不再进行比较。

      简单说:全部条件为false,才能是false

      例如:

      1
      2
      3
      4
      5
      6
      7
      8
      案例1
      var a=10;
      var b=11;
      var isTrue=a>10 || b>10;//返回结果为true,因为b>10返回为true,结果则为true
      案例2
      var a=10;
      var b=11;
      var isTrue=a>10 || b<10;//返回结果为false,两个比较都返回为false,则结果为false

      思考如下题目,且分析:

      1. 题目一:如下代码,请问isTrue为true还是false,变量a,b,c的值分别是多少?为什么?
      1
      2
      3
      4
      5
      6
      7
      8
      <script>
      var a=10;
      var b=11;
      var c=11;

      var isTrue=a++>=b || ++b>c--;
      console.log("isTrue:"+isTrue+",a="+a+",b="+b+",c="+c);
      </script>
      1. 题目二:如下代码,将a++变成了++a,请问isTrue为true还是false,变量a,b,c的值分别是多少?为什么?
      1
      2
      3
      4
      5
      6
      7
      8
      <script>
      var a=10;
      var b=11;
      var c=11;

      var isTrue=++a>=b || ++b>c--;//将++放在a前面,结果又是什么?
      console.log("isTrue:"+isTrue+",a="+a+",b="+b+",c="+c);
      </script>
    3. !:逻辑非

      理解:比较结果为true,则返回最终结果为false,比较结果为false,则返回最终结果为true

      简单理解:取反

      例如:

      1
      2
      3
      4
      var a=10;
      var b=11;
      var isTrue=!(a>b);//结果为true
      var isTrue2=!(a<b);//结果为false

6. 连接运算符+

  1. 概念:

    运算符用于把文本值或字符串变量加起来(连接起来)。

    如需把两个或多个字符串变量连接起来,请使用 + 运算符。

  2. 实例:

    如需把两个或多个字符串变量连接起来,请使用 + 运算符:

    txt1=”What a very”;
    txt2=”nice day”;
    txt3=txt1+txt2;

  3. 两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串,如下实例:

    1
    2
    3
    4
    5
    6
    7
    8
    x=5+5;//二个数字为相加,则做加法运算,结果为:10
    y="5"+5;//字符串和数据相加,则做连接,结果为:55
    z="Hello"+5;//与上一样

    x,y, 和 z 输出结果为:
    10
    55
    Hello5

课后作业

1.怎么判定为闰年(true)比如2004,1901平年(false),使用逻辑运算符
算法:能被4整除“且”不能整除100“或者”能整除400的为闰年

2.如果你的钱(monty)大于100000,就可以娶媳妇,否则单身

3.小明和妈妈约定,期末考试如果“语文”和“数学”都满90分,母亲就带她去玩,否则回家补课。

4.小明考试各科及格分数线,数学65以上,语文60以上,英语80以上

5.输入一个今天温度,输入一个明天温度,今天温度比明天温度是增多了还是减少了

6.风扇顺时针转一圈360度,然后又逆时针转114.8度,又顺时针转33度他最后转了多少度。

7、高速路上限速80,按照你输入的速度是否超速

8、输入一个输大于或等于10就打印你所输入数,如果小于10就在前面增加0

9、当前水杯的水是100毫升,根据你输入的数是增加了或减少了多少

10.设酒驾阈值为80,通过输入酒精度数判断是否酒驾

11.输入两个数,依次输出两个数,和,差,积,商

12.你要购买汽油,通过输入(5号或7号)进行选择汽油类型,在输入想要购买多少汽油(以升为单位)
5号10元每升,7号15元每升。如果购买超过或等于10升,那么5号或7号汽油每升减少2元
请计算出消费余额.

13.输入长方形的长和宽,计算其周长和面积。

14.输入圆的半径,计算其周长和面积。

15.黄林超在银行存了1000元,年利率为3%,请问3年后他的本息和共多少钱?

16.有一堆香蕉共26根,邓家远每天吃掉一半再多吃一根,请问吃了3天后还剩多少?

17.李成志把一个篮球从6楼扔下,篮球每次回弹的距离为上一次掉落距离的一半,请问第三次回弹的高度是多少?(楼房单层高度为4m)