聊聊 ES6 中的箭头函数
首先来两点:
- 当只有一个参数的时候,那么 () 可以省略
- 当只有一个 return 的时候,那么 {} 可以省略
- 当函数体内只有一条语句的时候,那么 {} 也可以省略
下面来几个简单的例子来对比 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 中的箭头函数的更多相关文章
- ES6中的箭头函数
关于函数表达式中的this:自动引用正在调用当前方法的.前的对象1.obj.fun()中的this fun中的this -> obj2.new Fun() Fun中的this -> 正在创 ...
- ES6中的箭头函数与普通函数的区别
箭头函数与普通函数的区别 1.语法上更加简洁.清晰 基本语法: // 关于箭头函数的参数 // 如果箭头函数没有参数,直接写一个括号即可 let fun1 = () => { console.l ...
- ES6中的箭头函数和普通函数有什么区别?
1.普通函数中的this总是指向调用它的那个对象, 箭头函数没有自己的this,他的this永远指向其定义环境,任何方法都改变不了其指向,如call().bind().apply().(正是因为它没有 ...
- JS ES6中的箭头函数(Arrow Functions)使用
转载这篇ES6的箭头函数方便自己查阅. ES6可以使用“箭头”(=>)定义函数,注意是函数,不要使用这种方式定义类(构造器). 一.语法 基础语法 (参数1, 参数2, …, 参数N) => ...
- es6中的(=>)箭头函数
x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 箭头函数相当于匿名函数,并且简化了函数定义. 箭头函数有两种格式,一种像上面的,只包含 ...
- ES6中的箭头函数的语法、指向、不定参数
箭头函数的语法 function fn1() { console.log(1); } let fn2 = () => { console.log(2); } fn1()//1 fn2()//2 ...
- ES6中的Generator函数
今天小编发现一个es6中的新概念,同时也接触到了一个新关键字yeild,下面我就简单和大家聊聊es6中的generator函数.大家还可以关注我的微信公众号,蜗牛全栈. 一.函数声明:在functio ...
- [js高手之路] es6系列教程 - 箭头函数详解
箭头函数是es6新增的非常有意思的特性,初次写起来,可能会觉得别扭,习惯之后,会发现很精简. 什么是箭头函数? 箭头函数是一种使用箭头( => )定义函数的新语法, 主要有以下特性: 不能通过n ...
- ES6学习之箭头函数
ES6学习笔记--箭头函数 箭头函数一直在用,最近突然想到重新看一下箭头函数的用法,所以这里做一些总结. 箭头函数长这个样子: let fn = a => a++; // fn 是函数名, a= ...
随机推荐
- Cesium的Property机制总结[转]
https://www.jianshu.com/p/f0b47997224c 前言 Cesium官方教程中有一篇叫<空间数据可视化>(Visualizing Spatial Data).该 ...
- Linux Shell:根据指定的文件列表 或 map配置,进行文件位置转移
读取配置文件,进行文件位置转移 在whenb.csv中指定了需要从/home/root/cf/下移除到/home/root/cf_wh/下文件列表,whenb.csv中包含记录如下: enb- enb ...
- TCP的拥塞窗口和快速恢复机制的一些备忘及一点想法
rwnd(窗口,代表接收端的处理能力).cwnd(拥塞窗口,从发送端看当前网络整体承载能力).ssthresh(快速增长切换成慢速增长的界限值) 1.慢启动,是指数增长(对面确认多少个包,就增加多少) ...
- Nginx访问路径添加密码保护
创建口令文件 用openssl命令创建口令 openssl passwd -apr1 会产生一个hash口令, 然后和用户名一起, 以[用户名]:[hash口令]的格式写入文本文件即可 例如创建一个名 ...
- 信用卡号码格式验证-C#实现
/// <summary> /// Is valid? /// </summary> /// <param name="context">Val ...
- checkbox与label内的文字垂直居中的解决方案
<label style="float:left;margin-top:5px;margin-left:10px;cursor:pointer"><input t ...
- mongodb配置“主从”模式
版本的mongodb不支持Master/slave模式了.推荐使用集群模式.大家都知道,集群模式需要多于三台的奇数台机器(奇数个进程测试有意义,实际意义不大)现在我的手头有两台主机,更合理的配置个人觉 ...
- Python3基础 二、八、十、十六进制数的定义
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- easyui datagrid 中序列化后的日期格式化
1.在easyui datagrid 中序列化后的日期显示为:/Date(1433377800000)/ 2.格式化后的显示为: 2015-06-04 08:30:00 3.使用代码如下: 3.1. ...
- public interface ICloneable
using System.Runtime.InteropServices; namespace System{ // // 摘要: // 支持克隆,即用与现有实例相同的值创建类的新实例. [ComVi ...