深入浅出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 相关文章推荐
JavaScript调用Activex控件的事件的实现方法
Apr 11 Javascript
JavaScript中函数声明优先于变量声明的实例分析
Mar 01 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
Dec 19 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
Oct 16 Javascript
vue分页组件table-pagebar使用实例解析
Nov 15 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
Nov 15 Javascript
Vue开发过程中遇到的疑惑知识点总结
Jan 20 Javascript
js实现3D图片展示效果
Mar 09 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
Sep 08 Javascript
javascript中join方法实例讲解
Feb 21 Javascript
javascript 原型与原型链的理解及应用实例分析
Feb 10 Javascript
js实现圆形菜单选择器
Dec 03 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 实现类似js中alert() 提示框
2015/03/18 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
PHP使用OB缓存实现静态化功能示例
2019/03/23 PHP
PHP实现简单日历类编写
2020/08/28 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
2017/02/15 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
vue.js封装switch开关组件的操作
2020/10/26 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
python线程锁(thread)学习示例
2013/12/04 Python
Python读取mp3中ID3信息的方法
2015/03/05 Python
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
实用自动化运维Python脚本分享
2018/06/04 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
Python Django搭建网站流程图解
2020/06/13 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
新加坡第一的杂货零售商:NTUC FairPrice
2020/12/05 全球购物
自荐信格式简述
2014/01/25 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android