下面的代码哪一种的可读性更强呢,并思考为什么?
假如一家商场对商品正在进行打折,价格在 100 - 200 之间的打八折,其它的按原价出售.
第一种:
function calculatePrice(price){
var result;
if (price >= 100 && price < 200) {
result = price * 0.8;
} else {
result = price;
}
return result;
}
第二种
function calculatePrice(price) {
let result;
if (isDiscount(price)) {
result = discount(price);
} else {
result = price;
}
return result;
}
function isDiscount(price) {
return price >= 100 && price < 200;
}
function discount(price) {
return price * 0.8;
}
第三种
function calculatePrice(price) {
if (isDiscount(price)) {
return discount(price);
} else {
return price;
}
}
function isDiscount(price) {
return price >= 100 && price < 200;
}
function discount(price) {
return price * 0.8;
}
第三种可读性最强,其次是第二种,最后是第一种。把各个功能拆解成不同的函数,从函数名可读出函数的作用,并且便于后期维护。第三种直接return,更符合人的思维,更加简便。