优雅的编程「If语句」

作者: Ricoywang | 来源:发表于2018-01-14 16:43 被阅读0次

随着项目代码量的增多,如何优化项目代码的健壮性,是一直萦绕在脑海里,却没有停下来好好考虑的事情。总会遇到某一段函数的变量对象就突然找不到属于它的方法了,排除半天,发现参数不知道什么时候变成了undefined。而对于书写if(){}总觉得性价比不高,书写麻烦,占用空间,丑!于是总结许多经常需要写 if语句,但可以用其他代替的情况。主要是变量赋值判断,函数执行判断,多种条件判断。

♨ if 条件语句

  • 逻辑运算符简化 -- 通过参数判断是否执行函数
    编写代码的过程中,我们经常面对的问题可能就是某一个函数所需要的变量可能会因为是undefined导致代码报错,按照一般的编程习惯可能更喜欢写if(Vue ){ console.error("blabla··")},说实话,写的我手疼····。而在Vue的源码中经常看到类似这样的一段代码Vue && console.error("Vue is undefined")
    在逻辑判断过程中,其实也函数执行的过程
·常用写法
if(someThing){
    toDo();
}
·优雅写法
someThing && toDo();
-  逻辑或(||)
只要第一个值的布尔值为false,就会永远执行第二位的toDo()函数。
逻辑或属于短路操作,第一个值为true时,不再执行第二位的toDo()函数,且返回第一个值。
  - 逻辑与(&&)
只要第一个值的布尔值为true,那么永远返回第二个值。
逻辑与属于短路操作,第一个值为false时,不再执行第二位的toDo()函数,且返回第一个值。
  • 逻辑运算简化多中情况下的变量赋值
var x = a || b 等价于:
var x;
if(a){
    x = a;
} else if(b){
    x = b;
} 
var x = a && b 等价于:
var x = a;
if(a){
    x = b;
}
  • 三目运算
    if(a === true){
      a ="真"
    }else{
    a ="假"
    }
    相当于三目运算 a === true ? "真" : "假"
    
  • switch/case
    当条件判断数量较大时,可以采用 switch/case代替一长串的eles if(){}
switch (res.state) {
        case 'SUCCESS':
            //TODO
            break;
        case 'FAIL':
            //TODO
            break;
        default :
            //TODO
    }
  • 变量默认值

常用情况是在函数内部,形参作为变量传入,但这个参数也可能不被传入,这时候我们可能就需要写 if(!someName){someName ="rico_wang"}来命名参数的默认值,实际上 someName = someName || "rico_wang"通过逻辑运算符也可以达到同样的效果。

  • 当条件数量较多,但结果可能有共通性时
##例如
var name= null;
if(a = 1){
name = "wang"
}else if(a =2 ){
name = "li"
}else if(a = 3){
name = "wang"
}else if(a = 4){
name = "li"
}

完全可以简化为:

var name= null;
if(a = 1|| a= 3 ){
name = "wang"
}else if(a = 2 || a = 4){
name = "li"
}

总结:那么如何准确的选择更简洁的书写方式呢
1、用作函数执行前,参数存在与否的判断,防止程序出错
2、变量赋值,条件情况只有一种时 使用双目运算对变量进行赋值
3、变量赋值,条件情况为多种,仅选择其中一种情况赋值
4、在 if 条件情况较多,可使用switch/case代替

相关文章

  • 优雅的编程「If语句」

    随着项目代码量的增多,如何优化项目代码的健壮性,是一直萦绕在脑海里,却没有停下来好好考虑的事情。总会遇到某一段函数...

  • 《一步一步学优雅编程》目录

    优雅编程之这样注释代码,你就“正常”了(一) 优雅编程之这样写函数,你就“正常”了(二) 优雅编程之做1个“正常”...

  • 第三章(4):基本概念(学习笔记)

    语句 ECMAScript中的语句和大多数编程语言的语句类似。 if 语句 do-while 语句先执行后判断,最...

  • 第三章 JavaScript基本概念(五)

    5. 语句 5.1 if语句 大多数编程语言中最为常用的语句就是if语句。以下是if语句的用法:   其中的con...

  • Python 3.10新加入switch语法

    Switch语句存在于很多编程语言中,但 Python 编程语言不支持 Switch 语句。早在 2016 年,P...

  • # shell流程控制语句

    shell流程控制语句 任何编程语言都离不开流程控制语句,其实编程基本上就是掌握了流程控制语句,然后加上函数(或者...

  • MySQL编程:存储过程、存储函数、触发器

    语句块模式 在mysql编程中,begin...end;基本代替了原来编程语句中的{...}语法。但又有所区别:一...

  • js之你不知道的流程控制

    js 流程控制(语句) 1. if 语句 大多数编程语言常用的语句: if (condition 1){ sta...

  • 二十四:JavaScript中的if语句

    if语句是使用最为普遍的条件选择语句,每一种编程语言的if语句都差不多。if语句类型共有3种:(1)if语句(单向...

  • 流程控制语句

    if语句是使用最为普遍的条件选择语句,每一种编程语言的if语句都差不多。if语句类型共有3种:(1)if语句(单向...

网友评论

    本文标题:优雅的编程「If语句」

    本文链接:https://www.haomeiwen.com/subject/mockoxtx.html