// bad
const obj = {
lukeSkywalker: lukeSkywalker,
};
// good
const obj = {
lukeSkywalker,
};
使用对象多个属性时对对象进行结构,数组同
```javascript
// bad
function getFullName(user) {
const firstName = user.firstName;
const lastName = user.lastName;
return `${firstName} ${lastName}`;
}
// good
function getFullName(user) {
const { firstName, lastName } = user;
return `${firstName} ${lastName}`;
}
// best
function getFullName({ firstName, lastName }) {
return `${firstName} ${lastName}`;
}
使用默认参数语法,而不是改变函数参数
// really bad
function handleThings(opts) {
// No! We shouldn’t mutate function arguments.
// Double bad: if opts is falsy it'll be set to an object which may
// be what you want but it can introduce subtle bugs.
opts = opts || {};
// ...
}
// good
function handleThings(opts = {}) {
// ...
}
将变量分配到需要的位置,但将它们放在合理的位置
// bad - unnecessary function call
function checkName(hasName) {
const name = getName();
if (hasName === 'test') {
return false;
}
if (name === 'test') {
this.setName('');
return false;
}
return name;
}
// good
function checkName(hasName) {
if (hasName === 'test') {
return false;
}
const name = getName();
if (name === 'test') {
this.setName('');
return false;
}
return name;
}
对布尔值使用快捷方式,但对字符串和数字使用显式比较。
// bad
if (isValid === true) {
// ...
}
// good
if (isValid) {
// ...
}
// bad
if (name) {
// ...
}
// good
if (name !== '') {
// ...
}
// bad
if (collection.length) {
// ...
}
// good
if (collection.length > 0) {
// ...
}
项目开发规范和风格指南
为什么要制定开发规范?
// bad const obj = { lukeSkywalker: lukeSkywalker, };
// good const obj = { lukeSkywalker, };
使用默认参数语法,而不是改变函数参数
将变量分配到需要的位置,但将它们放在合理的位置
对布尔值使用快捷方式,但对字符串和数字使用显式比较。
三元组不应嵌套,通常为单行表达式
避免不必要的三元语句
不要使用选择运算符代替控制语句
CSS
Use :not() to Apply/Unapply Borders on Navigation
函数式编程
减少副作用方法:
可变性和不可变性:
方法链:
文章推荐
你已经是一个成熟的码农了,这些思维习惯你要有 前端工程师都有哪些靠谱的小工具 css黑魔法小技巧