//! 箭头函数 // ES6 允许使用“箭头”(`=>`)定义函数。 //TODO 语法: (arg1, arg2, ..., argN) => { statements } // 下面就是定义一个箭头函数 let sum = (x, y) => { return x + y; }; // 等价于 function sum1(x, y) { return x + y; } console.log(sum(2, 3)); // 5 //! 仅有一个参数时,定义新参的圆括号可以省略.但是没有参数 圆括号必有有,是语法的一部分。 let f = () => { console.log(v); }; //! 在花括号中编写函数体代码,当函数体中只有一个表达式时,可以省略花括号,同时表达式的值会自动作为函数的返回值 let sum2 = (x, y) => x + y; console.log(sum2(2, 3)); // 5 //! 箭头函数主要的应用场景:就是替代传统的回调函数 var arr = [1, 2, 3, 4]; var total = 0; // arr.forEach(function (v) { // total += v; // }); // 使用箭头函数, 使得代码更加简洁 arr.forEach((v) => (total += v)); console.log(total); /** *! 面试考点(先背下来) ** 箭头函数与function定义函数的区别: * 1. 箭头函数没有自己的`this`,会从父级作用域中继承下来。 * 2. 不可以当作构造函数,也就是说,不可以对箭头函数使用`new`命令,否则会抛出一个错误。 * 3. 不可以使用`arguments`对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。 * 4. 不可以使用`yield`命令,因此箭头函数不能用作 Generator(生成器) 函数。 */