深入浅出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编程起步(第六课)
Jan 10 Javascript
Extjs学习笔记之七 布局
Jan 08 Javascript
javascript生成json数据简单示例分享
Feb 14 Javascript
jqueryUI里拖拽排序示例分析
Feb 26 Javascript
在JS方法中返回多个值的方法汇总
May 20 Javascript
对JavaScript客户端应用编程的一些建议
Jun 24 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
May 17 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
Jun 12 Javascript
ionic组件ion-tabs选项卡切换效果实例
Aug 27 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
May 20 Javascript
layui使用及简单的三级联动实现教程
Dec 01 Javascript
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
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
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
php 文本文件的读取效率
2012/02/10 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
2014/11/03 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
JavaScript异步调用定时方法并停止该方法实现代码
2012/03/16 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
JavaScript中的冒泡排序法
2016/08/03 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
JS重学系列之聊聊new操作符
2019/03/04 Javascript
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
python中的五种异常处理机制介绍
2014/09/02 Python
Python fileinput模块使用介绍
2014/11/30 Python
理解Python中的类与实例
2015/04/27 Python
Python数据结构之单链表详解
2017/09/12 Python
Django 实现下载文件功能的示例
2018/03/06 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
pytorch 修改预训练model实例
2020/01/18 Python
将keras的h5模型转换为tensorflow的pb模型操作
2020/05/25 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
创先争优一句话承诺
2014/05/29 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
美丽心灵观后感
2015/06/01 职场文书
单位车辆管理制度
2015/08/05 职场文书