博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
箭头函数语法学习()
阅读量:4949 次
发布时间:2019-06-11

本文共 1345 字,大约阅读时间需要 4 分钟。

// 六种语言中的简单函数示例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(); });

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

 这样的一行代码可以堆积起来。

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

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

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

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

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

更令人困惑的是,你的JavaScript引擎会将类似{key: value}的对象字面量解析为一个包含标记语句的块。幸运的是,{

是唯一一个有歧义的字符,所以用小括号包裹对象字面量是唯一一个你需要牢记的小窍门。

 

转载于:https://www.cnblogs.com/wiggin-Z/p/8891260.html

你可能感兴趣的文章