1.简写对象方法
const atom = {addValue(value) {return atom.value + value;},
};
2.简写对象属性
const lukeSkywalker = 'Luke Skywalker';
const obj = {lukeSkywalker,
};
3.能不用var尽量不用var
4.不要直接调用Object.prototype方法(因为怕被自身带有的函数所覆盖)
// 更好
const has = Object.prototype.hasOwnProperty; // 在模块范围内缓存一次查找
5.类转为数组时使用Array.from
const arrLike = { 0: 'foo', 1: 'bar', 2: 'baz', length: 3 };
const arr = Array.from(arrLike);
6.如果数组有多行,请在打开数组后和关闭数组括号之前使用换行符。
const arr = [[0, 1], [2, 3], [4, 5]];const objectInArray = [{id: 1,},{id: 2,},
];const numberInArray = [1,2,
];
7.使用解构,减少临时变量开销
// 更好的
function getFullName({ firstName, lastName }) {return `${firstName} ${lastName}`;
}const arr = [1, 2, 3, 4];
// 好的
const [first, second] = arr;
//注意,对象解构不用考虑顺序,但是数组解构一定按照顺序来
8.多使用模板字符串
9.多使用命名函数表达式
// 好的
const foo = function bar() {// ...
};
10.使用默认参数语法,而不是重写函数参数
// 好的
function handleThings(opts = {}) {// ...
}
11.保持function关键字的间距
// 好的
const x = function () {};
const y = function a() {};
12.永远不要重写参数
// 好的
function f2(obj) {const key = Object.prototype.hasOwnProperty.call(obj, 'key') ? obj.key : 1;
}
// 好的
function foo(bar,baz,quux,
) {// ...
}
14.方法可以返回 this 以帮助方法链接
class Jedi {jump() {this.jumping = true;return this;}setHeight(height) {this.height = height;return this;}
}const luke = new Jedi();luke.jump().setHeight(20);
15.不要直接在 export 上进行导出
// 这样不太好
// filename es6.js
export { es6 as default } from './AirbnbStyleGuide';// 这样比较好
// filename es6.js
import { es6 } from './AirbnbStyleGuide';
export default es6;
class Calculator extends Abacus {constructor() {super();// TODO: total 需要变成一个可配置的选项参数al = 0;}
}
24.尖括号{}内需要左右添加空格
// 好
const foo = { clark: 'kent' };
25.对象末尾也添加逗号
26.分号问题,分号还是要的
27.parseInt尽量有第二个参数,参数一是几进制的
28.当不想缓存this的时候可以使用箭头函数
29.文件导入时导入默认模块的名字应当和文件名相同
30.模块导出a constructor / class / singleton / function library / bare object使用帕斯卡拼写法
31.略缩词应当全部为大写或者小写
32.常量可以完全大写
33.如果属性/方法的结果是布尔值,使用 isVal() 或 hasVal().
本文发布于:2024-02-05 06:32:45,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170726361763885.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |