前端性能优化:条件判断优化

来源:互联网 发布:ipad无法加入网络热点 编辑:程序博客网 时间:2024/05/28 17:05

条件比较少时使用if,比较多是使用switch,超过十个时使用数组判断。

例如如下的if判断:

 if (value==0)        {            do0();        }        else if (value == 1)        {            do1();        }        else if (value == 2) {            do2();        }        else if (value == 3) {            do3();        }        else if (value == 4) {            do4();        }        else if (value == 5) {            do5();        }        else if (value == 6) {            do6();        }        else if (value == 7) {            do7();        }        else if (value == 8) {            do8();        }        else if (value == 9) {            do9();        }

可以根据实际情况,把最长出现的放在最前边

或者改写为switch,来减少判断

 switch (value)        {            case 0:                do1();                break;            case 1:                do1();                break;            case 2:                do2();                break;            case 3:                do3();                break;            case 4:                do4();                break;            case 5:                do5();                break;            case 6:                do6();                break;            case 7:                do7();                break;            case 8:                do8();                break;            case 9:                do9();                break;        }

也可以使用二分法改写if。例如

 if (value < 6) {            if (value < 3) {                if (value = 0) {                    do0();                }                else if (value = 1) {                    do1();                } else {                    do2();                }            }        } else {            if (value < 8) {                if (value = 6) {                    do6();                }                else {                    do7();                }            }            else {                if (value = 8) {                    do8();                }                else if (value = 9) {                    do9();                } else {                    do10();                }            }        }

使用数组优化:

 var results = [do0, do1, do2, do3, do4, do5, do6, do7, do8, do9];        return results[value]();

1 0
原创粉丝点击