深入浅出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 相关文章推荐
Prototype最新版(1.5 rc2)使用指南(1)
Jan 10 Javascript
JavaScript中几种常见排序算法小结
Feb 22 Javascript
js拼接html注意问题示例探讨
Jul 14 Javascript
Javascript的&&和||的另类用法
Jul 23 Javascript
30个经典的jQuery代码开发技巧
Dec 15 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
Jun 24 Javascript
关于JavaScript作用域你想知道的一切
Feb 04 Javascript
详解AngularJS中的http拦截
Feb 09 Javascript
javascript实现文件拖拽事件
Mar 29 Javascript
Vue Prop属性功能与用法实例详解
Feb 23 Javascript
jquery实现上传图片功能
Jun 29 jQuery
JavaScript ES6的函数拓展
Jan 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
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
基于header的一些常用指令详解
2013/06/06 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
php文件上传的简单实例
2013/10/19 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
JQuery 入门实例1
2009/06/25 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
jquery实现的图片点击滚动效果
2014/04/29 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
jquery实现用户信息修改验证输入方法汇总
2015/07/18 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
JS、jQuery中select的用法详解
2016/04/21 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
python执行子进程实现进程间通信的方法
2015/06/02 Python
python根据京东商品url获取产品价格
2015/08/09 Python
详解Python编程中包的概念与管理
2015/10/16 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
如何使用Python 打印各种三角形
2019/06/28 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
2019年Java面试必问之经典试题
2012/09/12 面试题
英语师范专业毕业生自荐信
2013/09/21 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
英文自荐信范文
2015/03/25 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
eval(cmd)与eval($cmd)的区别与联系
2021/07/07 PHP
详解flex:1什么意思
2022/07/23 HTML / CSS