• 箭头函数语法学习()


    箭头函数语法学习()


    // 六种语言中的简单函数示例 function (a) { return a > 0; } // JS [](int a) { return a > 0; } // C++ (lambda (a) (> a 0)) ;; Lisp lambda a: a > 0 # Python a => a > 0 // C# a -> a > 0 // Java

    箭袋中的新羽

    ES6中引入了一种编写函数的新语法

        // ES5
        var selected = allJobs.filter(function (job) {
          return job.isSelected();
        });
        // ES6
        var selected = allJobs.filter(job => job.isSelected());

    当你只需要一个只有一个参数的简单函数时,可以使用新标准中的箭头函数,它的语法非常简单:标识符=>表达式。你无需输入functionreturn,一些小括号、大括号以及分号也可以省略。

    (我个人对于这个特性非常感激,不再需要输入function这几个字符对我而言至关重要,因为我总是不可避免地错误写成functoin,然后我就不得不回过头改正它。)

    那么不是非常函数化的情况又如何呢?除表达式外,箭头函数还可以包含一个块语句。回想一下我们之前的示例:

        // ES5
        $("#confetti-btn").click(function (event) {
          playTrumpet();
          fireConfettiCannon();
        });

    这是它们在ES6中看起来的样子:

        // ES6
        $("#confetti-btn").click(event => {
          playTrumpet();
          fireConfettiCannon();
        });

    这是一个微小的改进,对于使用了Promises的代码来说箭头函数的效果可以变得更加戏剧性,}).then(function (result) { 这样的一行代码可以堆积起来。

    注意,使用了块语句的箭头函数不会自动返回值,你需要使用return语句将所需值返回。

    小提示:当使用箭头函数创建普通对象时,你总是需要将对象包裹在小括号里。

        // 为与你玩耍的每一个小狗创建一个新的空对象
        var chewToys = puppies.map(puppy => {});   // 这样写会报Bug!
        var chewToys = puppies.map(puppy => ({})); //

    用小括号包裹空对象就可以了。

    不幸的是,一个空对象{}和一个空的块{}看起来完全一样。ES6中的规则是,紧随箭头的{被解析为块的开始,而不是对象的开始。因此,puppy => {}这段代码就被解析为没有任何行为并返回undefined的箭头函数。

    更令人困惑的是,你的JavaScript引擎会将类似{key: value}的对象字面量解析为一个包含标记语句的块。幸运的是,{是唯一一个有歧义的字符,所以用小括号包裹对象字面量是唯一一个你需要牢记的小窍门。

     
  • 相关阅读:
    中国软件外包IT公司最新排名
    DJ舞曲、音乐与爱好!
    linux论坛
    IBM P 系列小型机的控件面板功能~!(转用)
    JDBC Driver 驱动 For SQL 2008 Server /2005 /2000
    年报盘点:149家公司筹码大幅集中
    公式指标—精华
    观峰雨个人空间 2010 STOCK ADVICE !
    IntelliJ IDEA提示Cannot resolve symbol
    今天天变的好冷了~
  • 原文地址:https://www.cnblogs.com/wiggin-Z/p/8891260.html
Copyright © 2020-2023  润新知