美文网首页
优化你的JavaScript条件语句

优化你的JavaScript条件语句

作者: 婆娘漂亮生活安逸 | 来源:发表于2019-06-21 16:56 被阅读0次

    有以下的人员清单:
    男:John,Bob,Ben
    女:Amy,Lisa,Lili

    1.使用 Array.includes 处理多种条件


    a.如果是 John,Bob,Ben这三人则打印出 “Boy” 的提示信息;

    function test(name){
      if (name === 'John' || name === 'Bob'  || name === 'Ben') {
        console.log('Boy!');
      }
    }
    

    如果人员名单内又加入了几个 Boy,那么这段逻辑将变成非常庞大;因此可以通过Array.includes进行改写;

    function test(name){
      let boyNames = ['John', 'Bob', 'Ben'];
      if (boyNames.includes(name)) {
        console.log('Boy!');
      }
    }
    

    2.减少条件嵌套,提早进行return;


    a条件下,在继续添加条件:
    b.如果未传进 name 参数时,则提示‘No Name Parameter!’;
    c.如果在传入 name 为 Boy,并且人数 count 大于 1 时,则同时给出提示‘The Same Name!’

    function test(name, count){
        let boyNames = ['John', 'Bob', 'Ben'];
        if (name) {
            if (boyNames.includes(name)) {
                console.log('Boy!');
                if (count > 1) {
                    console.log('The Same Name!');
                }
            }
        } else {
            console.log('No Name Parameter!');
        }
    }
    

    以上代码没有任何问题,却发现嵌套了多层的 if 条件,后期如果有条件需要继续维护,则嵌套非常深!就会造成 回调地狱 的现象!我们可以通过相反的条件判断无效情况,尽早 return,这样会大大减少层级嵌套。

    function test(name, count){
        let boyNames = ['John', 'Bob', 'Ben'];
        if (!name) console.log('No Name Parameter!');
        if (!boyNames.includes(name)) return;
        console.log('Boy!');
        if (count > 1) {
            console.log('The Same Name!');
        }
    }
    

    3.使用解构以及函数默认值;


    当未传入 name 时,我们使用符号 ‘--’ 来代替;
    以下代码可能经常见到:

    function test(name, count){
        let name = name || '--';
        // ...
    }
    

    这边代码的给name赋默认值,
    以前我还喜欢用三目表达式let name = name ? name : '--'
    其实可以使用函数默认值简化

    function test(name = '', count = 0){
        // ...
    }
    

    如果参数过多传入对象时,就可以使用解构,这些都可以帮助简化代码;

    function test({ name = '', count = 0 }){
        // ...
    }
    

    4.使用Lodash;


    第三方库 Lodash
    提供了大量的现成方法,可以大大的简化代码,很多逻辑不需要自己特意重新写。这里不在讲述用法。

    对于我自己而言,当一段代码可以复制粘贴时,那么这个时候就可以考虑复用,如果一些条件语句过于冗余时,就该想想如何简化,这里不排除可能逻辑真的很复杂情况。

    相关文章

      网友评论

          本文标题:优化你的JavaScript条件语句

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