1、块级作用域,用let取代var
for (let i = 0; i < 10; i++) {
console.log(i);
}
2、全局常量和线程安全,在全局环境应该设置常量const,多使用const提高程序的运行效率
const [a, b, c] = [1, 2, 3];
3、静态字符串使用单引号,动态字符串使用反引号
const a = 'foobar';
const b = `foo${a}bar`;
4、使用数组成员对变量赋值,优先使用解构赋值
const arr = [1, 2, 3, 4];
const [first, second] = arr;
5、函数的参数如果是对象的成员,优先使用解构赋值
function getFullName({ firstName, lastName }) {
}
6、如果函数返回多个值,优先使用对象的解构赋值
function processInput(input) {
return { left, right, top, bottom };
}
const { left, right } = processInput(input);
7、对象,单行定义的对象,最后一个成员不以逗号结尾。多行定义的对象,最后一个成员以逗号结尾。
const a = { k1: v1, k2: v2 };
const b = {
k1: v1,
k2: v2,
};
8、如果对象的属性名是动态的,可以在创造对象的时候,使用属性表达式定义。
const obj = {
id: 5,
name: 'San Francisco',
[getKey('enabled')]: true,
};
9、对象的属性和方法,尽量采用简洁表达法,这样易于描述和书写
const atom = {
ref,
value: 1,
addValue(value) {
return atom.value + value;
},
}
10、拷贝数组
const itemsCopy = [...items];
11、不要在函数体内使用 arguments 变量,使用 rest 运算符(…)代替。
function concatenateAll(...args) {
return args.join('');
}
12、map结构(有内部的遍历机制)
let map = new Map(arr);
for (let key of map.keys()) {
console.log(key);
}
13、模块
13.1 使用import 取代require
import { func1, func2 } from 'moduleA';
13.2 使用exports代替modules.exports,如果模块只有一个输出值,就使用export default,如果模块有多个输出值,就不使用export default,export default与普通的export不要同时使用。
import React from 'react';
class Breadcrumbs extends React.Component {
render() {
return <nav />;
}
};
export default Breadcrumbs;
13.3 如果确认只输出一个函数,函数名第一个字母应该小写
function makeStyleGuide() {
}
export default makeStyleGuid
13.4 如果只输出一个对象,首字母应该大写
onst StyleGuide = {
es6: {
}
};
export default StyleGuide;