深入浅出ES6新特性之函数默认参数和箭头函数


Posted in Javascript onAugust 01, 2016

1、函数参数的默认值

ES5中不能直接为函数的参数指定默认值,只能通过以下的变通方式:

深入浅出ES6新特性之函数默认参数和箭头函数

从上面的代码可以看出存在一个问题,当传入的参数为0或者false时,会直接取到后面的值,而不是传入的这个参数值。

那怎么解决呢?对于上图的代码,可以通过判断是否传入了num参数,没有就用默认值:

深入浅出ES6新特性之函数默认参数和箭头函数

这种做法还是很麻烦的,而ES6则直接在参数定义里面设置函数参数的默认值,而且不用担心传入参数是0或者false会出错了:

深入浅出ES6新特性之函数默认参数和箭头函数

2、箭头函数

箭头函数用 => 符号来定义。

箭头函数相当于匿名函数,所以采用函数表达式的写法。

左边是传入函数的参数,右边是函数中执行的语句。

深入浅出ES6新特性之函数默认参数和箭头函数

上面是完整的写法,左边小括号,右边大括号,而下面的情况可以简写:

(1)当要执行的代码块只有一条return语句时,可省略大括号和return关键字:

深入浅出ES6新特性之函数默认参数和箭头函数

箭头函数在回调函数中是很简洁的,像这样:

深入浅出ES6新特性之函数默认参数和箭头函数

需要注意的是, 箭头函数没有自己的this、arguments、super、new.target,它们分别指向外层函数的相应变量。

以前在ES5中使用this有点麻烦,这种问题很常见:

深入浅出ES6新特性之函数默认参数和箭头函数

但是现在有了箭头函数,不再需要使用that = this或 _this = this 这种代码啦,因为箭头函数中的this直接就是外层函数中的this,代码更简单了:

深入浅出ES6新特性之函数默认参数和箭头函数

以上所述是小编给大家介绍的A深入浅出ES6新特性之函数默认参数和箭头函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
一个用js实现控制台控件的代码
Sep 04 Javascript
js停止输出代码
Jul 20 Javascript
js实现上传图片之上传前预览图片
Mar 25 Javascript
onbeforeunload与onunload事件异同点总结
Jun 24 Javascript
深入解析JavaScript中的变量作用域
Dec 06 Javascript
jquery中val()方法是从最后一个选项往前读取的
Sep 06 Javascript
js window对象属性和方法相关资料整理
Nov 11 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
Sep 02 Javascript
jQuery Validate 数组 全部验证问题
Jan 12 Javascript
JS判断时间段的实现代码
Jun 14 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
Aug 27 Javascript
vue 使用async写数字动态加载效果案例
Jul 18 Javascript
AngularJS基础 ng-class-odd 指令示例
Aug 01 #Javascript
js添加千分位的实现代码(超简单)
Aug 01 #Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 #Javascript
jQuery的ajax和遍历数组json实例代码
Aug 01 #Javascript
JS遍历页面所有对象属性及实现方法
Aug 01 #Javascript
AngularJS 基础ng-class-even指令用法
Aug 01 #Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
Aug 01 #Javascript
You might like
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
php重定向的三种方法分享
2012/02/22 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
Laravel学习教程之本地化模块
2017/08/18 PHP
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
浅谈JavaScript的函数及作用域
2016/12/30 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
Webpack执行命令参数详解
2017/06/17 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
python scatter函数用法实例详解
2020/02/11 Python
Python使用多进程运行含有任意个参数的函数
2020/05/02 Python
django 解决扩展自带User表遇到的问题
2020/05/14 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
Python解析微信dat文件的方法
2020/11/30 Python
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
电子商务专业毕业生求职信
2014/06/12 职场文书
员工生日活动方案
2014/08/24 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年招商引资工作总结
2014/11/22 职场文书
教师党员承诺书2015
2015/01/21 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
redis 限制内存使用大小的实现
2021/05/08 Redis
Python import模块的缓存问题解决方案
2021/06/02 Python
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技