JS之代码简洁(补充)
前言
我们在编写程序应该想到将为未来的自己和“其他人”编写代码,而不仅仅只编写当前能工作就行的代码。所以,在编写代码时一定要尽量让自己的代码更加的简洁,从而易于人理解的、易于更改或扩展。
一.函数
1.使用长而具有描述性的名称。考虑到函数表示某种行为,函数名称应该是动词或短语,用以说明其背后的意图以及参数的意图。函数的名字应该说明他们做了什么。
//不好的方式
function notif(user) {
// ...
}
//好的方式
function notifyUser(emailAddress) {
// ...
}
2.避免使用大量参数。理想情况下,函数应该指定两个或更少的参数。参数越少,测试函数就越容易,参数多的情况可以使用对象。
//不好的方式
function getUsers(fields, fromDate, toDate) {
// ...
}
//好的方式
function getUsers({ fields, fromDate, toDate }) {
// ...
}
getUsers({
fields: ['name', 'surname', 'email'],
fromDate: '2019-01-01',
toDate: '2019-01-18'
});
3.一个函数应该只做一件事,不要在一个函数中执行多个操作。
//不好的方式
function notifyUsers(users) {
users.forEach(user => {
const userRecord = database.lookup(user);
if (userRecord.isVerified()) {
notify(user);
}
});
}
//好的方式
function notifyVerifiedUsers(users) {
users.filter(isUserVerified).forEach(notify);
}
function isUserVerified(user) {
const userRecord = database.lookup(user);
return userRecord.isVerified();
}
4.使用默认参数替代 || 操作
//不好的方式
function createShape(type) {
const shapeType = type || "cube";
// ...
}
//好的方式
function createShape(type = "cube") {
// ...
}
二.条件
1.使用条件简写。这可能微不足道,但值得一提。仅对布尔值使用此方法,并且如果你确信该值不会是 undefined 或 null的,则使用此方法。
//不好的方式
if (isValid === true) {
// ...
}
if (isValid === false) {
// ...
}
//好的方式
if (isValid) {
// ...
}
if (!isValid) {
// ...
}
2.尽量避免使用反面条件。
//不好的方式
function isUserNotBlocked(user) {
//...
}
if (!isUserNotBlocked(user)) {
//...
}
//好的方式
function isUserBlocked(user) {
//...
}
if (isUserBlocked(user)) {
//...
}