8.js 1.5 KB

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