首先来两点:

  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. SRS之安装与使用

    1. 安装 1.1 github 获取源码 git clone https://github.com/ossrs/srs.git 1.2 编译 1.2.1 关闭防火墙和 selinux 先关闭防火墙, ...

  2. dubbo架构角色

    角色 Dubbo有5个参与者:其中Monitor.Registry不是必须的 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方(负载均衡) Registry 服务注册 ...

  3. [转]Maven 全局配置文件settings.xml详解

    原文地址:https://www.jianshu.com/p/110d897a5442 概要 settings.xml有什么用? 如果在Eclipse中使用过Maven插件,想必会有这个经验:配置se ...

  4. Leetcode: Find And Replace in String

    To some string S, we will perform some replacement operations that replace groups of letters with ne ...

  5. echo * 和ls *之间的区别?

    背景描述: 今天 一同事做入职考试,涉及到1题目,echo * 和ls *之间的区别,没有用过这个用法,再次记录下. 操作过程: 1.执行echo * [root@localhost ~]# echo ...

  6. bind 0.0.0.0的作用是什么呢?

    背景描述: 今天在看redis的内容,看到同事在配置文件中将bind配置为0.0.0.0进行监听,不明白什么意思就查询了下,在此记录下. 解释: 0.0.0.0在服务器的环境中,指的就是服务器上所有的 ...

  7. bladex下载前端代码后,运行服务时报错【'vue-cli-service' 不是内部或外部命令,也不是可运行的程序或批处理文件。】的解决方法

    问题:E:\BladeXDB\Saber>yarn run serveyarn run v1.13.0$ vue-cli-service serve'vue-cli-service' 不是内部或 ...

  8. 【视频开发】ffmpeg 的编译选项

    ffmpeg xxxx$ ./configure --help Usage: configure [options] Options: [defaults in brackets after desc ...

  9. java8新特性:对map集合排序

    一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map,map是键值对的集合接口,它的实现类主要包括:HashMap, TreeMap, Hashtable以及LinkedHashMap等 ...

  10. SpringBoot系列教程JPA之query使用姿势详解之基础篇

    前面的几篇文章分别介绍了CURD中的增删改,接下来进入最最常见的查询篇,看一下使用jpa进行db的记录查询时,可以怎么玩 本篇将介绍一些基础的查询使用姿势,主要包括根据字段查询,and/or/in/l ...