ES6之箭头函数arrow function

Welcome to use ES6 Arrow Funciton

因为运用比较简单,Demo如下:
  let a = 1 , b = 2
  //1. 一个参数
  let sum1 = x => console.log('箭头函数有一个参数', x = a)
  sum1 () // 1
  //2. 没有参数或多个参数   用圆括号 "()" 代表参数部分
  let sum0 = () => console.log('箭头函数没有参数', a)
  sum0 () // 1
  let sum2 = (x,y) => console.log('箭头函数多个参数', x = a, y = b)
  sum2 () // 1,2
  // 3. 如果箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,并且使用return语句返回
  let sum3 = (x,y) => {
    x = a,
    y = b
    return console.log('箭头函数多于一条语句',x+y)
  }
  sum3 () // 3
  // 4. 直接返回一个对象,需要在对象外面加一个括号,否则会报错
  let sumObj = () => ({'a':1 , 'b': 2})
  sumObj ()

  //  --- 用处 1 简化回调函数
  // 正常函数写法
  let map = [1,2,3].map(function (x) {
    return x * x
  })
  // 箭头函数写法
  let mapArr = [1,2,3].map(x => x * x)
  console.log('箭头函数与回调',map, mapArr)

  // --- 用处 2 箭头函数可以与变量解构结合使用。
  const fullArr = ({ first, last }) => console.log('箭头函数与解构', first + '' + last)
  // 等同于
  function full(person) {
     return person.first + ' ' + person.last;
  }

  // --- 用处 3 箭头函数与rest 参数结合使用
  const numbersArr = (...nums) => console.log('箭头函数与rest一维', nums)
  numbersArr(1, 2, 3, 4, 5)
  // [1,2,3,4,5]
  const headAndTail = (head, ...tail) => console.log('箭头函数与res二维', [head, tail])
  headAndTail(1, 2, 3, 4, 5)
  // [1,[2,3,4,5]]

  // 注意点: 箭头函数没有它自己的this值,箭头函数内的this值继承自外层代码块的this
  function foo() {
    setTimeout(() => {
      console.log('id:', this.id);   // 继承foo的id 42, 故输出42
    }, 100);
  }
  let id = 21;
  foo.call({ id: 42 });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,261评论 25 709
  • (a fork of Airbnb's Javascript Style Guide) Strikingly ES...
    飘零_zyw阅读 4,894评论 1 2
  • 向来对做一个柔弱似水这样的女子表示无感!婚姻里,真爱你的女人,她就必须钢,还得想做铁金刚!她不愿你一个人承担家庭所...
    王府燕窝钱小彬阅读 876评论 0 1
  • 今夜,想要写下我们的懵懂时光,想要和你说,回到我的世界来吧,你年幼时就无比宠爱的丫头她长大了,但她还需要你,她想你...
    WeiXi玲宝阅读 3,251评论 0 1
  • 孩子最近都在9点30左右睡觉,但总想着自己睡不着,对睡不着这件事非常焦虑。我只是安慰她,陪着她。昨天一直到10点左...
    dd100阅读 1,196评论 0 0