箭头函数

  • 8.1 当你必须使用函数表达式(或传递一个匿名函数)时,使用箭头函数符号。

    为什么?因为箭头函数创造了新的一个 this 执行环境(译注:参考 Arrow functions - JavaScript | MDNES6 arrow functions, syntax and lexical scoping),通常情况下都能满足你的需求,而且这样的写法更为简洁。

    为什么不?如果你有一个相当复杂的函数,你或许可以把逻辑部分转移到一个函数声明上。

    1. // bad
    2. [1, 2, 3].map(function (x) {
    3. const y = x + 1;
    4. return x * y;
    5. });
    6. // good
    7. [1, 2, 3].map((x) => {
    8. const y = x + 1;
    9. return x * y;
    10. });
  • 8.2 如果一个函数适合用一行写出并且只有一个参数,那就把花括号、圆括号和 return 都省略掉。如果不是,那就不要省略。

    为什么?语法糖。在链式调用中可读性很高。

    为什么不?当你打算回传一个对象的时候。

    1. // good
    2. [1, 2, 3].map(x => x * x);
    3. // good
    4. [1, 2, 3].reduce((total, n) => {
    5. return total + n;
    6. }, 0);