需求是星期回显,传 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")