const res = a > b ? a - b : 0;
const res = Math.max(0, a - b); //性能更优
如果判断很多的话, 首先考虑通过配置项解决如字典, 其次使用switch case, 因为switch case 只做一次判断, ifelse最好的情况下做一次判断,最坏的情况下就是n次判断。
如果很多地方都在对一个变量进行操作,可以考虑将操作和变量抽象为一个类来处理,便于统一开发和维护。例如有一个电话号码mobile的变量,很多地方需要对它做校验,而且每个人都写了自己的校验方法,如果要修改校验的话就要找出每个地方,所以抽象出来更易于维护和管理。
class Mobile {
_mobile: string;
constructor() {
this._mobile = '';
}
get mobile () {
return this._mobile;
}
set mobile (mobile) {
this._mobile = mobile;
}
isValide = () => {
return (/^(?:13d|15[89])-?d{5}(d{3}|*{3})$/.test(this.mobile));
}
}
函数参数粒度越细使用上下文空间越大,即范围越广,反之则越小。在如下例子中可以看到a函数被限定于只能在类customer作为参数时使用,而b函数则不限于某个类,只要传入stateCode就可以使用。
function a_inNewEngland (customer) {
const stateCode = customer.address.state;
return ["MA", "CT"].includes(stateCode);
}
function b_inNewEngland (stateCode) {
return ["MA", "CT"].includes(stateCode);
}
网友评论