概述

箭头函数的作用是为Js提供一种函数的简写方法,箭头函数作用域内不包含this, arguments, super, or new.target,并且不能用于对象的构造函数;

基本语法

[(][params][)] => [(][{]statements[}][)]

  • 参数:

参数可有可无,但是无参数的时候必须带括号

() => { statements }

支持Rest parametersdefault parameters

(param1, param2, ...rest) => { statements }
(param1 = defaultValue1, param2, …, paramN = defaultValueN) => {
statements }

支持Destructuring

var f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
f(); //
  • 表达式

表达式方面大致可分为两类;

一类是接圆括号的:

这类表达式只能编写一条语句,不支持分号,下面这个例子是错误的:

var f = () => (a = "1";b = "2";a+b);

同时元括号默认返回这个唯一语句执行后的值,并不需要带return关键值:

var f = () => (a = "abc";);
console.log(f());//abc var materials = [
'Hydrogen',
'Helium',
'Lithium',
'Beryllium'
];
console.log(materials.map(m => m.length));//8, 6, 7, 9 ({a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40});
var f = () => (rest.d);
console.log(f());//40

因为只有一条表达式所以元括号也是可以省略的

var f = () => a = "abc";
console.log(f());//abc

第二类是接大括号的:

这一类跟圆括号的差异就是它可以支持多条表达式,但是需要返回值时,必须接return:

var f = () => {
var a = 1;
var b = 2;
return a+b;
}
console.log(f());//

结论

花式玩法:

var f = ({a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40}) => ({a: a, b: b, rest: rest});
console.log(f());

Js语法确实是天马行空.

[JavaScript]ECMA-6 箭头函数的更多相关文章

  1. JavaScript 基础(七) 箭头函数 generator Date JSON

    ES6 标准新增了一种新的函数: Arrow Function(箭头函数). x => x *x 上面的箭头相当于: function (x){ return x*x; } 箭头函数相当于匿名函 ...

  2. JavaScript中的箭头函数

    1.定义 箭头函数相当于匿名函数,并且简化了函数定义.箭头函数有两种格式,一种像上面的,只包含一个表达式,连{ ... }和return都省略掉了.还有一种可以包含多条语句,这时候就不能省略{ ... ...

  3. javascript 使用 匿名 箭头函数 this的变化

    处理html 页面 <body> <div class="main"> <div class="up"> <div c ...

  4. JavaScript中的普通函数和箭头函数

    最近被问到了一个问题: javaScript 中的箭头函数 ( => ) 和普通函数 ( function ) 有什么区别? 我当时想的就是:这个问题很简单啊~(flag),然后做出了错误的回答 ...

  5. JS中的普通函数和箭头函数

    最近被问到了一个问题: >javaScript 中的箭头函数 (=>) 和普通函数 (function) 有什么区别? 我当时想的就是:这个问题很简单啊~(flag),然后做出了错误的回答 ...

  6. [ES6系列-02]Arrow Function:Whats this?(箭头函数及它的this及其它)

    [原创] 码路工人 大家好,这里是码路工人有力量,我是码路工人,你们是力量. 如果没用过CSharp的lambda 表达式,也没有了解过ES6,那第一眼看到这样代码什么感觉? /* eg.0 * fu ...

  7. 深入理解JavaScript中的箭头

    箭头函数可以使我们的代码更加简洁,如下: var sum = (a,b) => a+b; JavaScript 充满了我们需要编写在其他地方执行的小函数的情况. 例如: arr.forEach( ...

  8. 轻松学习 JavaScript——第 6 部分:JavaScript 箭头函数

    JavaScript箭头函数是ECMAScript 6中引入的编写函数表达式的一种简便方法.通常,在JavaScript中,可以通过两种方式创建函数: 函数语句. 函数表达式. 可以如下所示创建函数语 ...

  9. 【javascript】箭头函数

    ES6标准新增了一种新的函数:Arraw Function(箭头函数). x => x * x 这个函数相当于 function (x){ return x * x; } 题外话:user st ...

  10. JavaScript学习笔记(十二)——箭头函数(Arrow Function)

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

随机推荐

  1. Win7系统用户文件夹多出一个Administrator.xxx开头的文件怎么解决

    一般情况下,Win7操作系统都会有一个Administrator用户文件夹,但最近有用户发现自己win7系统电脑中用户文件夹有两个Administrator文件夹,另一个是以Administrator ...

  2. php框架之phalcon

    1.开发助手 1) 下载 git clone https://github.com/phalcon/cphalcon.git git clone https://github.com/phalcon/ ...

  3. MongoDB之常用操作

    最近经常使用MongoDB来进行数据的操作,特此记录总结一下

  4. 注意:QQ影音视频压缩时长丢失

    客户宣传片发来,高清的,比较大,500多M,需要转成小一点的,放在客户网站上,于是用QQ影音转码压缩下,变成低质量的.如下 一切都很顺利,提示进度100%! 这一切都是电脑自动的,又是提示成功的,千想 ...

  5. Django-6 Django ORM层

    ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的 ...

  6. css的寬高約束

    https://blog.csdn.net/qq_26780317/article/details/80736514

  7. DNS预解析prefetch

    前面的话 本文将详细介绍DNS预解析prefetch的主要内容 概述 DNS(Domain Name System, 域名系统),是域名和IP地址相互映射的一个分布式数据库.DNS 查询就是将域名转换 ...

  8. SOme USeful NOtes for MYself.

    SOme USeful NOtes for MYself. B站神奇的频道(YouTube里同名):关于微积分/线代/梯度下降/DL等数学知识的理解,对理解DL很有帮助 https://space.b ...

  9. 关系型数据库 VS 非关系型数据库

    一.关系型数据库? 1.概念 关系型数据库是指采用了关系模型来组织数据的数据库.简单来说,关系模式就是二维表格模型. 主要代表:SQL Server,Oracle,Mysql,PostgreSQL. ...

  10. 【简】题解 AWSL090429 【噪音】

    因为每次加上一头奶牛 是什么不重要 牛棚之间贡献除清空操作外无影响 就只要考虑 每个牛棚清空分x次 的贡献 x之和为k       求贡献和最小 一个牛棚清空x次 显然平均清空贡献最小 再用等差数列的 ...