if else 和 switch个别开发中都是基于判断条件的数量来决定的,数量越多大家就越偏向于 switch 而不是 if else,switch 的实现采取了branch table 索引的 ,而且 switch 语句比拟时应用的是全等操作符,不会产生类型转换的损耗。

如何优化if:最大概率呈现到最小概率呈现顺次排列;缩小判断的次数,应用嵌套语句。

在我的项目中,优化条件语句的最好方法还是防止应用 if-else 和 switch 语句,而是通过数组或者对象来查问,也就是查找表(lookup Tables)。

以下是将要优化的代码片段:

        getTextColor(item){            switch (item.couponType) {                // 运费绿                case 'SHIPPING_FREE':                    return '#00836D';                    break;                // 直降红                case 'DEDUCTION':                    return '#FE0000';                    break;                // 满减 折扣 橘                case 'DEDUCTION_ON':                case 'DISCOUNT':                    return '#FB6C0E';                    break;                default:                    break;            }        }

能够优化成查找表的形式:

        getTextColor(item){            return {                'SHIPPING_FREE': '#00836D',// 运费绿                'DEDUCTION': '#FE0000',// 直降红                'DEDUCTION_ON': '#FB6C0E',// 满减 折扣 橘                'DISCOUNT': '#FB6C0E',            }[item.couponType]        },

为了映射表能够屡次应用,能够应用闭包:

            const textColor = (() => {                const table = {                    "SHIPPING_FREE": "#00836D",                    "DEDUCTION": "#FE0000",                    "DEDUCTION_ON": "#FB6C0E"                };                return key => table[key];            })();            console.log(statusText("SHIPPING_FREE"));