消除多余的if分支
- 使用三目运算符代替if
var total = total ? value1 : total;
- 取消不必要的else
//一般写法
function getName(name) {
if (typeof name === 'string') {
return name;
} else {
return 'name is not invalid '
}
}
//取消else分支
function getName(name) {
if (typeof name === 'string') {
return name;
} else {
return 'name is not invalid '
}
}
3.使用continue取消if的{}嵌套
//一般写法
for (var i = 0; i < 10; i++) {
if (data[i].name) {
//要执行的代码
}
}
//使用continue
for (var i = 0; i < 10; i++) {
if (!data[i].name) continue;
//要执行的代码
}
或者使用return也能达到同样的效果
使用策略模式
由于javascript的对象可以存储多种数据类型,所以面向对象的设计模式实现起来也很容易。
策略模式的好处之一就是能有效的减少分支语句。
//比如现在小明要从北京到上海旅行,那么他可选的出行方式有:高铁、飞机、自驾。
function plane() { };
function rail() { };
function drive() { };
function travel(ways) {
if (ways === 'plane') {
plane();
}
else if (ways === 'rail') {
rail();
}
else if (ways === 'drive') {
drive();
};
};
//使用策略模式
var travelWays = { plane, rail, drive };
function travel(ways) {
return travelWays[ways];
};
travel('plane');
持续更新中。。。