爱彼迎js规范学习(仅针对个人进行记录)

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;
}
  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;

16.export不导出可变绑定,尽量用const常量
17.优先使用default
18.导入导出也需要和数组一样进行缩进
19.使用点语法访问属性
20.2 ** 10 == Math.pow(2, 10)
21.在所有的多行代码块使用括号
22.注释写在上方,而且要空一行,除非是在代码块的第一行;注释应当与//隔开一个空格
23.注释中如果表示有问题需要解决标注todo

class Calculator extends Abacus {
  constructor() {
    super();

    // TODO: total 需要变成一个可配置的选项参数
    this.total = 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().

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值