ITPub博客

首页 > 应用开发 > Javascript > JavaScript ES6值得掌握的五大功能

JavaScript ES6值得掌握的五大功能

原创 Javascript 作者:cenfeng 时间:2019-07-04 13:42:38 0 删除 编辑

JavaScript ES6为JavaScript语言添加了许多新功能,其中一些功能比其他功能更具开创性和广泛应用。 例如 ES6 Classes之类的 东西  ,虽然新颖,但只是在现有的方法基础上添加语法糖,以便在JavaScript中创建类,而像Generators这样的功能虽然功能非常强大,但却保留用于更专业的任务。

1)JavaScript箭头功能

ES6 JavaScript中我最喜欢的一个新功能并不是一个新功能,而是一个令人耳目一新的新语法集,每次我使用它时都会在我脸上露出笑容。 我在谈论Arrow函数,它提供了一种在JavaScript中定义匿名函数的极其优雅和简约的方法。

简而言之,Arrow函数会删除“  function ”关键字,并使用箭头( => )  将函数 的 参数部分与  匿名  函数 的函数BODY 分开  :

1
<font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >(x,y)=> x * y;</font></font>

这相当于:

1
2
3
<font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" > function (x,y){</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
     返回x * y;</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
}</font></font>

要么:

1
2
3
4
<font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >(x,y)=> {</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
     var factor = 5;</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
     var growth =(xy)* factor;</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
}</font></font>

这与:

1
2
3
4
<font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" > function (x,y){</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
     var factor = 5;</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
     var growth =(xy)* factor;</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
}</font></font>

使用传统的匿名函数时,箭头函数也会删除错误的关键源,这是 this 函数内部 “  ”对象的值。 使用箭头函数,“  this ”是词法绑定的,这  只是一种说法,它的值与父作用域绑定,并且从不改变。 如果   在自定义对象“  ”中 定义 了  箭头 函数,则“  countup ”的值 this 指向“  countup ” - 不需要猜测。 例如:

1
2
3
4
五
6
7
8
9
10
11
<font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" > var countup = {</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
     柜台:15,</font></font><font></font>
      <font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
     开始:函数(){</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
         window.addEventListener( 'click' ,()=> {</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
             alert( this .counter) //由于词法绑定而正确警告15</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
         })</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
     }</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
};</font></font><font></font>
  <font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
countup.start();</font></font>

将其与传统的匿名函数进行比较,其中“  this ”  的值 根据其定义的上下文而变化。 this.counter 在上述情况下 尝试引用时的结果 将返回 undefined ,这种行为可能会混淆许多不熟悉动态错综复杂的行为捆绑。 使用箭头功能,“  this ”  的值 始终可预测且易于推断。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69933200/viewspace-2649532/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-06-18

  • 博文量
    125
  • 访问量
    129479