zoukankan      html  css  js  c++  java
  • ES6新特性之箭头函数语法

    ES6标准新增了一种新的函数:Arrow Function(箭头函数)。

    基础语法

    通常函数的定义方法

    var fn1 = function(a, b) {
        return a + b
    }
     
    function fn2(a, b) {
        return a + b
    }
    

    使用ES6箭头函数语法定义函数,将原函数的“function”关键字和函数名都删掉,并使用“=>”连接参数列表和函数体。

    var fn1 = (a, b) => {
        return a + b
    }
     
    (a, b) => {
        return a + b
    }
    

    当函数参数只有一个,括号可以省略;但是没有参数时,括号不可以省略。

    // 无参
    var fn1 = function() {}
    var fn1 = () => {}
     
    // 单个参数
    var fn2 = function(a) {}
    var fn2 = a => {}
     
    // 多个参数
    var fn3 = function(a, b) {}
    var fn3 = (a, b) => {}
     
    // 可变参数
    var fn4 = function(a, b, ...args) {}
    var fn4 = (a, b, ...args) => {}
    

    箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式,一种只包含一个表达式,省略掉了{ ... }和return。还有一种可以包含多条语句,这时候就不能省略{ ... }和return

    () => return 'hello'
    (a, b) => a + b
    
    (a) => {
      a = a + 1
      return a
    }
    

    箭头函数看上去是匿名函数的一种简写,但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,由上下文确定。(词法作用域就是定义在词法阶段的作用域。换句话说,词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的,因此当词法分析器处理代码时会保持作用域不变 。)

  • 相关阅读:
    SQL解发器与SQL游标实例
    动态调用JS
    HDU_5729_rmq+二分
    struts2 在MyEclipse中 的配置
    Struts 1.2 中如何测试Action
    OGNL使用小结【转】
    JUnit中assertEquals和assertSame方法的不同
    struts2 ActionContext
    ser文件与Java对象序列化
    测试Action组件代码(StrutsTestCase)
  • 原文地址:https://www.cnblogs.com/songwufan/p/14000949.html
Copyright © 2011-2022 走看看