个人学习笔记,具体参考:http://es6.ruanyifeng.com/#docs/style
1.块级作用域 (1)let 取代 var (2)全局常量和线程安全,推荐const
2.字符串 (1)静态使用单引号
const a = ‘foobar’;
(2)动态使用反引号
const b = foo${a}bar;
3.解构赋值 优先解构赋值的有: (1)使用数组成员对变量赋值 (2)函数的参数如果是对象的成员,对参数进行解构赋值 (3)函数返回多个值,优先对返回值采用对象解构
4.对象 (1)单行定义的对象,最后一个成员不以逗号结尾。多行定义的对象,最后一个成员以逗号结尾 (2)对象尽量静态化,一旦定义,就不得随意添加新的属性。如果添加属性不可避免,要使用Object.assign方法。 (3)如果对象的属性名是动态的,可以在创造对象的时候,使用属性表达式定义。 (4)对象的属性和方法,尽量采用简洁表达法
5.数组 (1)使用扩展运算符(…)拷贝数组。
const itemsCopy = […items];
(2)使用 Array.from 方法,将类似数组的对象转为数组。
const foo = document.querySelectorAll(‘.foo’); const nodes = Array.from(foo);
6.函数 (1)立即执行函数可以写成箭头函数的形式。 (2)那些需要使用函数表达式的场合,尽量用箭头函数代替。 (3)箭头函数取代Function.prototype.bind
const boundMethod = (…params) => method.apply(this, params)
(4)简单的、单行的、不会复用的函数,建议采用箭头函数。如果函数体较为复杂,行数较多,还是应该采用传统的函数写法。 (5)所有配置项都应该集中在一个对象,放在最后一个参数,布尔值不可以直接作为参数。
function divide(a, b, { option = false } = {}) { }
(6)不要在函数体内使用 arguments 变量,使用 rest 运算符(…)代替。 (7)使用默认值语法设置函数参数的默认值
function handleThings(opts = {}) { // … }
7.Map 结构 注意区分 Object 和 Map,只有模拟现实世界的实体对象时,才使用 Object。如果只是需要key: value的数据结构,使用 Map 结构。因为 Map 有内建的遍历机制。
let map = new Map(arr); for (let key of map.keys()) { console.log(key); } for (let value of map.values()) { console.log(value); } for (let item of map.entries()) { console.log(item[0], item[1]); }
8.Class (1)总是用 Class,取代需要 prototype 的操作。 (2)使用extends实现继承
9.模块 (1)使用import取代require。
import { func1, func2 } from ‘moduleA’;
(2)使用export取代module.exports.如果模块只有一个输出值,就使用export default
import React from ‘react’;
class Breadcrumbs extends React.Component { render() { return
; } }; export default Breadcrumbs;
(3)不要在模块输入中使用通配符。 (4)如果模块默认输出一个函数,函数名的首字母应该小写。 (5)如果模块默认输出一个对象,对象名的首字母应该大写。
10.ESLint 的使用 用ESLint 工具检查代码规范
十分感谢原作者! --------------------- 作者:面包派 来源: 原文:https://blog.csdn.net/panbinxian/article/details/80373768 版权声明:本文为博主原创文章,转载请附上博文链接!
