首先来两点:

  1. 当只有一个参数的时候,那么 () 可以省略
  2. 当只有一个 return 的时候,那么 {} 可以省略
  3. 当函数体内只有一条语句的时候,那么 {} 也可以省略

下面来几个简单的例子来对比 ES6 和 ES5:

ES5:

        window.onload = function () {
alert('abc');
}

ES6:

window.onload = () => {
alert('abc');
}

上面这个例子是最普通的,现在让我们传参比较

ES5:

        let show = function (a, b) {
alert(a + b);
}
show(2, 3);

ES6:

        let show = (a, b) => {
alert(a + b);
}
show(2, 3);

现在我们来验证一下圆括号可以省的请况

        let show = a => {
return a * 2;
}
alert(show(12));

运行结果:

看完了圆括号可以省的情况,现在让我们来验证一下花括号可以省的情况

由于上面这个例子只有一个return ,所以我们还是用这个例子来验证

先来一个错误示范吧(这样会出现语法问题)

        let show = a => return a * 2;
alert(show(12));

正确示范:

        let show = a => a * 2;
alert(show(12));

这样运行就成功了

上一个例子是有返回值的情况

下面来讨论没有返回值的时候:

函数体内只有一条语句(可以运行):

        let show = (a, b) => console.log(a + b);
show(1, 2);

当函数体内有多条语句(现在不加花括号):

        let show = (a, b) => a = a.toString(); b = b.toString(); console.log(a + b);
show(1, 2);

运行结果:

这样的话,b = b.toString(); 和 console.log(a + b); 就不是函数体内的语句了,而是 全局代码,所以会显示b 没有定义.

所以有多条语句时,要加 画括号
正确示范(正常运行):

        let show = (a, b) => {a = a.toString(); b = b.toString(); console.log(a + b)};
show(1, 2);// => 3

聊聊 ES6 中的箭头函数的更多相关文章

  1. ES6中的箭头函数

    关于函数表达式中的this:自动引用正在调用当前方法的.前的对象1.obj.fun()中的this fun中的this -> obj2.new Fun() Fun中的this -> 正在创 ...

  2. ES6中的箭头函数与普通函数的区别

    箭头函数与普通函数的区别 1.语法上更加简洁.清晰 基本语法: // 关于箭头函数的参数 // 如果箭头函数没有参数,直接写一个括号即可 let fun1 = () => { console.l ...

  3. ES6中的箭头函数和普通函数有什么区别?

    1.普通函数中的this总是指向调用它的那个对象, 箭头函数没有自己的this,他的this永远指向其定义环境,任何方法都改变不了其指向,如call().bind().apply().(正是因为它没有 ...

  4. JS ES6中的箭头函数(Arrow Functions)使用

    转载这篇ES6的箭头函数方便自己查阅. ES6可以使用“箭头”(=>)定义函数,注意是函数,不要使用这种方式定义类(构造器). 一.语法 基础语法 (参数1, 参数2, …, 参数N) => ...

  5. es6中的(=>)箭头函数

    x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 箭头函数相当于匿名函数,并且简化了函数定义. 箭头函数有两种格式,一种像上面的,只包含 ...

  6. ES6中的箭头函数的语法、指向、不定参数

    箭头函数的语法 function fn1() { console.log(1); } let fn2 = () => { console.log(2); } fn1()//1 fn2()//2 ...

  7. ES6中的Generator函数

    今天小编发现一个es6中的新概念,同时也接触到了一个新关键字yeild,下面我就简单和大家聊聊es6中的generator函数.大家还可以关注我的微信公众号,蜗牛全栈. 一.函数声明:在functio ...

  8. [js高手之路] es6系列教程 - 箭头函数详解

    箭头函数是es6新增的非常有意思的特性,初次写起来,可能会觉得别扭,习惯之后,会发现很精简. 什么是箭头函数? 箭头函数是一种使用箭头( => )定义函数的新语法, 主要有以下特性: 不能通过n ...

  9. ES6学习之箭头函数

    ES6学习笔记--箭头函数 箭头函数一直在用,最近突然想到重新看一下箭头函数的用法,所以这里做一些总结. 箭头函数长这个样子: let fn = a => a++; // fn 是函数名, a= ...

随机推荐

  1. #C++初学记录(树和二叉树)

    二叉树的编号 例题 6-6 小球下落问题 有一棵二叉树,最大深度为D,且所有叶子深度都相同.所有节点从上到下,从左到右编号为1,2,3,4,....,2^D-1.在节点1处放置小球,他会往下落.每个节 ...

  2. Unity接入微信登录 微信分享 微信支付 支付宝SDK

    你将会学到的unity集成SDK游戏中接入微信支付与支付宝支付游戏中接入微信登录与微信分享 目录 mp4格式,大小2.2GB 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop13 ...

  3. LDD3源码分析之poll分析

    编译环境:Ubuntu 10.10 内核版本:2.6.32-38-generic-pae LDD3源码路径:examples/scull/pipe.c  examples/scull/main.c 本 ...

  4. [Java复习] Spring Cloud - Netflix

    Spring Cloud Netflix常用组件 服务注册与发现:Eureka 服务负载均衡:Ribbon 服务声明式客户端:Feign 服务熔断:Hystrix 服务网关: Zuul Eureka: ...

  5. (转)python3:类方法,静态方法和实例方法以及应用场景

    原文:https://blog.csdn.net/qq_34979346/article/details/83212716 1.实例方法在编程里经常用的是实例方法,直接用实例去调用, 只要 方法里有s ...

  6. R3 x64枚举进程句柄

    转载:https://blog.csdn.net/zhuhuibeishadiao/article/details/51292608 需要注意的是:在R3使用ZwQueryObject很容易锁死,需要 ...

  7. Linux MySQL 5.6.43 安装

    [注意] 1.首先安装在默认目录 /usr/local/mysql,如需更改数据存储目录,进行2.3两步 2.如果需要修改数据目录,将my.nf 中的 datadir=/usr/local/mysql ...

  8. JS 各种引擎介绍

    JS 各种引擎介绍 http://www.oschina.net/project/tag/296/javascript-engine 不同浏览器有不同的JS引擎: WebKit , Safari浏览器 ...

  9. 【网络开发】详谈socket请求Web服务器过程

    最开始我们需要明白一件事情,因为这是这篇文章的前提: HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的.因此,浏览器访问Web服务器的过程必须先有"连接建立"的发生 ...

  10. ZooKeeper的工作原理

     ZooKeeper是一个分布式的应用程序协调服务.   2 ZooKeeper的工作原理 Zookeeper 的核心是原子广播,这个机制保证了各个Server之间的同步.实现这个机制的协议叫做Zab ...