函数,顾名思义,只是个函数,不能是构造函数(不能new),不能是Generator函数(不能使用yield)。
语法:
  1. 一个参数的简单函数
    箭头函数小结

  2. 没有参数的,需要加()小括号在参数的位置,多个参数,参数要用小括号括起来
    箭头函数小结
    多个参数:
    箭头函数小结
  3. 如果函数体只有一条语句,不用{}大括号包含起来的时候,默认是return语句
    箭头函数小结
    相当于
    箭头函数小结
    如下,我用this定义了a值为0,执行fn1箭头函数的时候,会输出2,此时a被赋值为2;
    同样,我定义了一个箭头函数fn2,函数体也是只有一条语句,但是我用{}括起来,但是没有return,执行fn2,输出是undefined,而fn4,普通有return的函数,同fn1执行相同。
    箭头函数小结
  4. 函数体多于一条语句,要用{}花括号括起来
    箭头函数小结
  5. 由上可知,{}被解释为一个代码块,所以在箭头函数中如果要返回一个对象,需要用()小括号括起来
    箭头函数小结
    这一点,需要以后注意一下,因为目前从控制台输出情况看,没有区别,我还以为会报错................
    箭头函数小结
    这种情况的时候报错了
  6. 如果 函数体只有一行语句,且不需要返回值,可以用下面这种写法
    let fn = () => void doNotReturn();
    自己在控制台写了一下,其实并不明白为啥有这种写法,如果不要返回值,直接{}不就好了吗.........
    箭头函数小结

使用场合:
  1. 普通方法声明定义
  2. 使代码更简洁
    箭头函数小结
  3. 结合变量结构使用:

    箭头函数小结
  4. 简化回调函数(map,forEach,then等等)
    箭头函数小结
  5. 结合rest参数,...扩展运算符使用
    箭头函数小结
    
注意点:
  1. 不可以当作构造函数, 不可以使用new命令,否则会抛出一个错误。
  2. 不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
  3. 不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
  4. 我觉得最重要的一点: 函数体内的this对象,就是定义函数时所在的对象,而不是函数使用时所在的对象。this关键字真的是一个很奇妙的东西,箭头函数可以固定this关键字的指向,这点很重要。
    箭头函数小结
    另一个例子:
    箭头函数小结
    this指向的固定化,并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。正是因为它没有this,所以也就不能用作构造函数。
    箭头函数小结

相关文章:

  • 2021-10-09
  • 2021-06-07
  • 2021-09-25
  • 2021-09-25
  • 2021-09-25
  • 2021-10-12
  • 2020-10-03
  • 2019-11-15
猜你喜欢
  • 2021-11-02
  • 2021-07-25
  • 2021-06-14
  • 2018-01-28
  • 2021-07-24
  • 2020-06-15
相关资源
相似解决方案