ES6推荐规范总结

个人学习笔记,具体参考: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

    (3)不要在模块输入中使用通配符。
    (4)如果模块默认输出一个函数,函数名的首字母应该小写。
    (5)如果模块默认输出一个对象,对象名的首字母应该大写。

  10. ESLint 的使用
    用ESLint 工具检查代码规范

你可能感兴趣的:(JavaScript)