ES6之箭头函数 Arrow Functions(二)

简介: ES6之箭头函数 Arrow Functions(二)

一、Arrows => 箭头函数


       箭头函数是一种函数简写方式, 定义形式是:参数(...)后面跟着箭头 =>,然后是函数内容体:

var sum = (a, b) => a + b; //此为expression

------编译后-------

var sum = function (a, b) {
   return a + b; };

从上面的代码,可以看到,大致是差不多的,我们把function变成了=>,然后将arguments写在括号里(若参数只有一个,则不需要括号。但没有参数,还是需要一个空括号的,切记)。还有要注意这样的expression写法,是仅仅支持单行且自动生成return的。

一、只有一个参数

var sum = a => a + 1; //此为expression

------编译后-------

var sum = function (a) {
   return a + 1; };

二、没有参数

var sum = ()=> a + 1; //此为expression

------编译后-------

var sum = function () {
   return a + 1; };

三、回调函数

numbers.forEach(num => {   
 if(num % 5 === 0){         fiveTimesArr.push(num);     } }) ------编译后------ numbers.forEach(function (num) {   
 if (num % 5 === 0) {         fiveTimesArr.push(num);     } });

可以看到,编译后是不存在return的,若需要返回这个数组需要手动添加。


四、带有this的箭头函数

var obj = {     key1: 'value1',     key2: [1, 2, 3, 4, 5],     func() {      
        this.key2.forEach(item =>console.log(this.key1));     } } ------编译后------
var obj = {     key1: "value1",     key2: [1, 2, 3, 4, 5],     func: function func() {       
         var _this = this;        
        this.key2.forEach(function (item) {        
                return console.log(_this.key1);         });     } };

可以看到,在forEach函数里,this自动绑定为obj中的this,这个特性,可以让我们免于非常多的烦恼。当然如果我们确实是需要回调中的this,则可以不使用arrows。直接使用我们最熟悉的原生函数即可。

例如:

var square = arr =>    arr.map(num => num * num); ------编译后------
var square = function (arr) {  
   return arr.map(function (num) {  
        return num * num;    }); };
目录
相关文章
|
6月前
ES6之箭头函数
ES6之箭头函数
|
7天前
|
JavaScript
哪些场景适合使用 ES6 的箭头函数?
总之,当需要简洁地定义函数、处理回调函数、避免 `this` 指向问题以及进行函数式编程等场景时,ES6的箭头函数都是一个很好的选择。但需要注意的是,箭头函数也有一些限制,如不能作为构造函数使用等,在使用时需要根据具体情况进行选择。
|
15天前
|
安全 JavaScript 前端开发
es6 箭头函数
【10月更文挑战第26天】ES6箭头函数为JavaScript开发者提供了一种更简洁、更直观的函数定义方式,同时其独特的`this`绑定和无`arguments`对象等特性也使得在一些特定场景下的代码编写更加方便和安全,但在使用时也需要注意其与普通函数的区别,以确保正确地使用和理解箭头函数。
103 62
|
19天前
|
自然语言处理
ES6 中箭头函数和普通函数区别
【10月更文挑战第19天】这些仅是对箭头函数和普通函数区别的一些主要方面进行的详细阐述,实际应用中可能还会有更多具体的细节和情况需要进一步探讨和理解。可以根据自己的需求进一步深入研究和实践,以更好地掌握它们在不同场景下的应用。
30 2
ES6学习(4)箭头函数
ES6学习(4)箭头函数
|
6月前
|
小程序
es6学习笔记(四)箭头函数
es6学习笔记(四)箭头函数
|
6月前
|
JavaScript 前端开发
JavaScript高级主题:什么是箭头函数(Arrow Functions)?有什么特点?
JavaScript高级主题:什么是箭头函数(Arrow Functions)?有什么特点?
48 1
|
6月前
ES6之箭头函数 Arrow Functions(二)
ES6之箭头函数 Arrow Functions(二)
39 0
|
6月前
Es6箭头函数
Es6箭头函数
62 0