js代码优化

 需求是星期回显,传 1 回显 星期一,传 7 回显 星期日,其他类推,无效回显空字符串;

1.switch

//    1.switch
        warnning(){
              switch(val){
                  case 1:
                      return '星期一';
                      break;
                  case 2:
                      return '星期二';
                      break;
                  case 3:
                      return '星期三';
                      break;
                  case 4:
                      return '星期四';
                      break;
                  case 5:
                      return '星期五';
                      break;
                  case 6:
                      return '星期六';
              }
            },

2.利用三目运算符 

 warnningText2(i){
             return i==1?'星期一':
                    i==2?'星期二':
                    i==3?'星期三':
                    i==4?'星期四':
                    i==5?'星期五':
                    i==6?'星期六':''
        },

3.数组+索引的方式

 warnningText3(i){
                return i>0 && i<8?'星期'+['一','二','三','四','五','六'][i]:'';
        },
        // 4. map优化代码
        warnningText4(i){
            let week=new Map([
                [1,'一'],[2,'二'],[3,'三'],[4,'四'],[5,'五'],[6,'六'],
            ]);
            return week.get(i)?'星期'+week.get(i):'';
        },

4.ES7 includes 

/*
 eg:
            if(val==1 || val==2 || val==3){
               return "好听"
           }else{
               return "难听"
           }
*/


 warnningText5(val){
          // includes
          if([1,2,3].includes(val)){
              return "好听"
          }else{
             return "难听"
          }

 includes + 三目:

 return [1,2,3].includes(val)?"好听":"难听";
        },

 sitch 语句优化 :

warnningText6(val){
            // eg:
            // switch(val){
            //     case '你':
            //         method1();
            //         break;
            //     case '我':
            //         method2();
            //         break;
            //     case '他':
            //         method3();
            //         break;
            //     case '它':
            //         method4();
            //         break;
            //     default:
            //         method5();    
            // };
    let condition={
                '你': this.method1,
                '我': this.method2,
                '他': this.method3,
                '它': this.method4,
            }
            condition[val]?condition[val]():this.method3();
        },
        warnningText7(){
            this.warnningText6('我');   // this is method2
            this.warnningText6('你zheme');  // this is method3
        },
        
        method1(){
            console.log("this is method1");
        },
        method2(){
            console.log("this is method2");
        },
        method3(){
            console.log("this is method3");
        },
        method4(){
            console.log("this is method4");
        },

if 语句优化:

 warnningText8(){
            /* 
               当flag为假时执行method5();
               let flag=false;
               flag || this.method5();
            */

           /* 
             当flag为真时执行method5();
             let flag = true;
             if(flag){
                this.method5()
             }

  和如下写法表达意思一样:

let flag = true; 

flag && this.method5(); 

  当flag和flag1为真时执行method5();

 let flag = true;
             if(flag && flag1){
                this.method5()
             }
            */
            let flag1=true;
           flag && flag1 && this.method4();
        },
        method5(){
            console.log("this is method5");
        },

if else 优化:

      /* 
        eg:
           let flag=true;
           if(flag){
               this.method4();
           }else{
               this.method5();
           }
         */
        warnningText9(){
            let flag=true;
            flag?this.method4():this.method5();
            // 或者
            [this.method4(),this.method5()][Number(flag)]
        },

if--else  可以优化如下:

let val=false;
        /* 
        if(val){
           this.warnningText11();
        }else{
            return '';
        }
        */
if(!val) return;
        this.warnningText11();
        },

if - else if - else 

  /* 
           eg:
           if(val=="黄"){
              return '黄色'
           }else if(val=="红"){
              return '红色'
           }else{
              return '蓝色'
           }
        */
  warnningText11(val){
           return ({
               '黄':'黄色',
               '红':'红色',
           })[val] || '蓝色'
        },
        warn(val){
           console.log(this.warnningText11('红'));   // 红色
           console.log(this.warn1('cc'));            // ƒ (){console.log("cccc")}
           this.warn2(31); 
        },

if - else if - else if - else 

 /* 
           if(val=="aa"){
               this.aa();
           }else if(val=="bb"){
               this.bb();
           }else if(val=="cc"){
               this.cc();
           }else{
               this.dd();
           }
        */
 warn1(val){
           let kk={
                aa:function(){console.log("aaaa")},
                bb:function(){console.log("bbbb")},
                cc:function(){console.log("cccc")},
                dd:function(){console.log("dddd")},
           };
            return kk[val];
        },

俄罗斯套娃优化(haha):

 

    /* 
      eg:
            if(val>2){
              if(val>5){
                  if(val>9){
                      if(val>15){
                          console.log("444444444444")
                      }
                  }
              }
           }
        */
        warn2(val){
        if(val>2 && val>5 && val>9 && val>15){
            console.log("444444444444");
        }
        val>2 && val>5 && val>9 && val>15 &&(()=>{
              console.log("99999999999")       //  99999999999
        })()
        val>2 && val>5 && val>15 && val<30 &&((res)=>{
            console.log("99999999999"+res)     //  99999999999lallalalalala
        })("lallalalalala")

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值