es6箭头函数有什么优点

es6箭头函数优点:1、简明的语法,例“parameters => {statements;};”,应用起来更加的方便;2、能够隐式返回;3、更直观的作用域和this的绑定(不绑定this)。

es6箭头函数有什么优点

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

我们都知道,在 JavaScript 里定义函数有多种方式。最常见的是用function关键字:

// 函数声明function sayHi(someone) {  return `Hello, ${someone}!`;}// 函数表达式const sayHi = function(someone) {  return `Hello, ${someone}`;}

登录后复制

上面的函数声明和函数表达式,我们姑且称之为常规函数。

还有就是 ES6 新增的箭头函数语法:

const sayHi = (someone) => {  return `Hello, ${someone}!`;}

登录后复制

相对于原先JS中的函数,ES6增长的箭头函数更加简洁,应用起来也更加的方便。

es6箭头函数的优点:

1、简明的语法

一个数组,把它变为原来的二倍之后输出。

删掉一个关键字,加上一个胖箭头;没有参数加括号,一个参数可选择;多个参数逗号分隔,const numbers = [5,6,13,0,1,18,23];//原函数const double = numbers.map(function (number) {    return number * 2;})console.log(double);//输出结果//[ 10, 12, 26, 0, 2, 36, 46 ]//箭头函数     去掉function, 添加胖箭头const double2 = numbers.map((number) => {    return number * 2;})console.log(double2);//输出结果//[ 10, 12, 26, 0, 2, 36, 46 ]//若只有一个参数,小括号能够不写(选择)const double3 = numbers.map(number => {    return number * 2;})console.log(double3);//如有多个参数,则括号必须写;若没有参数,()须要保留const double4 = numbers.map((number,index) => {    return `${index}:${number * 2}`;  //模板字符串})console.log(double4);

登录后复制

2、能够隐式返回

显示返回就是svg

const double3 = numbers.map(number => {    return number * 2;      //return 返回内容;})

登录后复制

箭头函数的隐式返回就是函数

当你想简单返回一些东西的时候,以下:去掉return和大括号,把返回内容移到一行,较为简洁;const double3 = numbers.map(number => number * 2);

登录后复制

补充:箭头函数是匿名函数,若需调用,须赋值给一个变量,如上 double3。匿名函数在递归、解除函数绑定的时候颇有用。

3、更直观的作用域和this的绑定(不绑定this)

一个对象,咱们原先在函数中是这么写的this

一个对象,咱们原先在函数中是这么写的

const Jelly = {    name:'Jelly',    hobbies:['Coding','Sleeping','Reading'],    printHobbies:function () {        this.hobbies.map(function (hobby) {            console.log(`${this.name} loves ${hobby}`);        })    }}Jelly.printHobbies();// undefined loves Coding// undefined loves Sleeping// undefined loves Reading

登录后复制

这说明 this.hobbies 的指向是正确的,this.name 的指向是不正确的;

当一个独立函数执行时,this 是指向window的

若是要正确指向,原先咱们的作法会是 设置变量替换spa

//中心代码printHobbies:function () {    var self = this; // 设置变量替换    this.hobbies.map(function (hobby) {        console.log(`${self.name} loves ${hobby}`);    })}Jelly.printHobbies();// Jelly loves Coding// Jelly loves Sleeping// Jelly loves Reading在ES6箭头函数中,咱们这样写code//中心代码printHobbies:function () {   this.hobbies.map((hobby)=>{       console.log(`${this.name} loves ${hobby}`);   })}// Jelly loves Coding// Jelly loves Sleeping// Jelly loves Reading

登录后复制

这是由于箭头函数中访问的this其实是继承自其父级做用域中的this,箭头函数自己的this是不存在的,这样就至关于箭头函数的this是在声明的时候就肯定了(词法做用域),this的指向并不会随方法的调用而改变。

【相关推荐:javascript视频教程、web前端】

以上就是es6箭头函数有什么优点的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2936746.html

(0)
上一篇 2025年3月11日 21:04:38
下一篇 2025年3月10日 17:19:08

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • es6声明变量有几种方法

    es6声明变量有6种方法:1、用关键字var声明变量;2、用关键字function声明变量;3、用关键字const声明变量;4、用关键字let声明变量;5、用关键字class声明变量;6、用关键字import声明变量。 本教程操作环境:wi…

    2025年3月11日
    200
  • es6合并对象的方法有哪些

    es6合并对象的方法有:1、利用“Object.assign()”方法,语法“Object.assign(obj1,obj2,obj3)”;2、使用使用扩展运算符“…”,语法“{…obj1,…obj2,&…

    2025年3月11日
    200
  • es6反引号怎么用

    es6反引号的用法:1、定义单行字符串;2、定义多行字符串,字符串中的空格、缩进和换行会被保留在输出之中;3、在字符串中嵌入变量,变量名需要写在“${}”中,例“`Hello ${name}`” 本教程操作环境:windows7系统、ECM…

    2025年3月11日
    200
  • es6遍历数组都有什么方法

    es6遍历数组的方法:1、使用forEach(),可为数组中的每个元素调用一个函数;2、使用map(),对数组的每个元素调用指定的回调函数;3、使用filter(),会调用一个回调函数来过滤数组中的元素,返回符合条件的所有元素;4、使用so…

    2025年3月11日 编程技术
    200
  • es6中箭头函数和普通函数的区别是什么

    区别:1、箭头函数的定义要比普通函数定义简洁、清晰得多,很快捷;2、箭头函数不会创建自己的this,而普通函数会;3、箭头函数不能作为构造函数使用,而箭头函数能作为构造函数使用;4、箭头函数没有自己的arguments,而箭头函数有。 本教…

    2025年3月11日
    200
  • es6 symbol属于基本类型吗

    es6 symbol属于基本类型。symbol是es6中引入的一种新的基本数据类型,表示独一无二的值;其作用是防止属性名的冲突,保证对象中每一个属性名都是独一无二的。 本教程操作环境:windows7系统、ECMAScript 6版、Del…

    2025年3月11日
    200
  • es6中foreach()怎么用

    在es6中,foreach()方法用于遍历数组,调用数组的每个元素,并将元素传递给回调函数进行处理,语法“array.forEach(function(currentValue,index,arr),thisValue)”。 本教程操作环境…

    2025年3月11日
    200
  • es6数组怎么清除所有元素

    清除方法:1、直接赋值为“[]”,语法“arr=[];”;2、使用splice()删除全部数组元素,语法“arr.splice(0,arr.length);”;3、利用length属性将数组长度设置为0,语法“arr.length=0;”。…

    2025年3月11日 编程技术
    200
  • es6 set是什么意思

    set的意思为“集合”,是ES6提供的新数据结构,类似于数组,但是成员的值都是唯一的,没有重复的值。Set对象允许用户存储任何类型的唯一值,无论是原始值或者是对象引用。 本教程操作环境:windows7系统、ECMAScript 6版、De…

    2025年3月11日
    200
  • ES6通过什么定义类

    在ES6中,class(类)作为对象的模板被引入,可以通过“class”关键字来定义类。class的本质是function,它可以看作一个语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法。 本教程操作环境:windows7系统、EC…

    2025年3月11日
    200

发表回复

登录后才能评论