语法
基础语法
1 2 3 4 5 6 7 8 9 10
   | (param1, param2, …, paramN) => { statements } (param1, param2, …, paramN) => expression          
 
  (singleParam) => { statements } singleParam => { statements }
 
  () => { statements }
  | 
 
高级语法
1 2 3 4 5 6 7 8 9 10
   |  params => ({foo: bar})
 
  (param1, param2, ...rest) => { statements } (param1 = defaultValue1, param2, …, paramN = defaultValueN) => { statements }
 
  var f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c; f();  
 
  | 
 
简短函数书写
1 2 3 4 5
   |  var a2 = a.map(function(s) {   return s.length }) var a3 = a.map(s => s.length)
 
  | 
 
this 词法解析
在箭头函数出现之前,每个新定义的函数都有其自己的 this 值。
1 2 3 4 5 6 7 8 9 10 11
   |  function Person() {   var self = this       self.age = 0
    setInterval(function growUp() {          self.age++   }, 1000) }
 
  | 
 
1 2 3 4 5 6 7 8 9 10
   |  function Person() {   this.age = 0
    setInterval(() => {     this.age++    }, 1000) }
  var p = new Person()
 
  |