【Day2】ES5 (运算符逻辑判断,三元运算符,if,switch)

日期:2月1日夜


1.&&  ||   !

            与  a && b

               a和b 都为true 结果也为true

               a和b 任意一个为false  结果也为false

           或  a || b

               a 和b 只要有一个为true 结果也为true

               a 和b 两个都为false  结果也为false

           非  !a    true --> false  (也是取反

                      false ---> true

           &&   ||  

             1。原则上 左右两侧都是boolean值或者是boolean表达式【该表达式计算的结果是boolean值】  结果也返回boolean值

             2、如果前面的表达式能够判断出整个表达式的结果 那么后面的表达式则不再执行

             3、如果左右两侧是非boolean 值  左右两侧会隐式转换成boolean值  取值 取最终能判断出整个表达式结果的那个数值

           综上所述:

              result = a && b / a||b, 如果a 能够判断出整个表达式的值 那么 result=a  否则 result  - b

             

        console.log(true && true);  // true
        console.log(true && false);  // false 
        console.log(false || true);  // true 
        console.log(false  || false); // false

        console.log( 2 > 1 || 1 < 0);  // true

2.三元运算符  

        三元运算符

            结果 = 表达式A【隐式转换】? 结果A : 结果B

             当表达式A 为 true  结果 = 结果A  否则 结果 = 结果B

        var r1 = Number(prompt("请输入一个数值a:"))
        var r2 = Number(prompt("请输入一个数值b:"))

        var result  = r1 > r2 ? r1+"大于"+r2 : r1+"不大于"+r2

3.IF语句

        条件的总结:1. if语句  处理 单一条件的 ,2. if...else 语句 处理 两个条件的  3.多重if语句  处理 n个条件的   

      1.if单层

                if(表达式A) {

                       结果A

                   }

           语法规则

           1.如果表达式A 为true 那么就会执行结果A  如果为true 则不执行结果A

           2.表达式A 也可以隐式转换成boolean类型

            var score = Number(prompt("请输入小明的成绩:")) 
            if(score >= 60){
                console.log("去游乐场玩.....");
            }  

      2.if else语句

            if(条件A) {

                结果A

            }else {

                结果B

            }

            如果条件A 为true 则执行结果A   否则执行结果B, if...else... 条件语句 很多时候可以和三元运算符相互替换

        var score  = Number(prompt("请输入分数。。。。"))

        if(score >= 60) {
            console.log("去游乐场玩....");
        }else {
            console.log("在家写暑假作业.....");
        }

        3.多重if语句

           语法、

             if(条件A) {

                 结果A

             }else if(条件B) {

                 结果B

             }....

             else if(条件N) {

                 结果N

             }else {

                 其他

             }

             满足某个条件 就执行对应的结果  执行完毕之后会跳出当前整个的流程控制语句

             特点: 多重if语句 结果 最多只能执行一个

 if 语句和多重if语句的特点:

              所有的多重if语句 都能被 单条if语句替换【只要把条件写精细就可以了】

              但是,多重if语句  条件匹配成功之后 就不会再继续向下匹配了  所以  如果存在多条件的判断   多重if语句效率 远远高于  if语句的效率

        var score = Number(prompt("请输入分数:"));
        if(score >= 90) {
            console.log("优秀");
        }else if(score >= 80 ) {
            console.log("良好");
        }else if(score >= 70 ) {
            console.log("中等");
        }else if(score >= 60 ) {
            console.log("及格");
        }else {
            console.log("不及格");
        }

案例:if

需求:小明考试

               及格: 60 70 80 90 100 去动物园       否则,去植物园

               不及格 就要挨揍

        var score = Number(prompt("请输入成绩:"))

        if (score >= 60) {

            // 不能被10整除的
            if (score % 10) {

                console.log("去植物园");

            } else {
                // 能被10 整除的
                console.log("去动物园");
            }

        } else {
            console.log("挨揍");
        }

        // 以上代码   可以改成三元运算
        var result = score >= 60 ? (score % 10 ? "去植物园" : "去动物园") : "挨揍";
        console.log(result);

         

4.switch语句

      1. switch条件

                  特点: 1 所有的switch 语句都可以被 if语句代替,2 switch 的应用场景  通常用于等值匹    配上

        

        语法:

             switch(变量条件) {

                   case 常量条件A :

                        结果A

                        break;

                   case 常量条件B :

                        结果B

                        break;

                        ....

                    case 常量条件N :

                        结果N

                        break;

                    default:

                          其它      

             }

特点: 变量条件 和  常量条件的匹配 是  === 的等值匹配

注意事项:

            1、 switch 的书写规范 一定要按照上述语法去写

            2、 不推荐的写法 但是语法 不报错

                   变量条件 可以不是变量  可以使用常量

                   变量条件 可以是一个表达式

                   常量条件 也可以是变量

                   常量条件 也可以是表达式

           

        /*输入内容
             1   打印 星期1 
             2   打印 星期2
             ...
             7   打印 星期天
             其他  打印  输入有误  */

        var week = Number(prompt("请输入星期:"))  // 1

        var  a = 1;

        switch (week) {
            case 2-a:
                console.log("星期一");
                break;
            case 2:
                console.log("星期二");
                break;
            case 3:
                console.log("星期三");
                break;
            case 4:
                console.log("星期四");
                break;
            case 5:
                console.log("星期五");
                break;
            case 6:
                console.log("星期六");
                break;
            case 7:
                console.log("星期天");
                break;
            default:
                 console.log("输入错误。。。");
        }

                      

   2.switch的穿透性  

        switch 关键字 定义是switch 流程语句

                     case   常量  用于匹配变量的数值

                     default 默认 如果没有匹配 则进入 default中执行

                     break   表示 结束整个流程控制

                     如果不写break 程序讲不用判断后面的case 直接到后面的case中执行  直到遇到break为止 才会推出整个switch

关于switch 穿透性 应用

              有相同业务逻辑的 可以放在一起 利用  穿透性  一次执行

        var week = Number(prompt("请输入日期"));

        switch (week) {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                console.log("工作日");
                break;
            case 6:
            case 7:
                console.log("休息日");
                break;

            default:
                console.log("输入错误。。。。");
                break;
        }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值