深入浅出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获得CheckBoxList选中的数量
Oct 27 Javascript
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
Feb 07 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
Oct 17 Javascript
js中跨域方法原理详解
Jul 19 Javascript
js实现超酷的照片墙展示效果图附源码下载
Oct 08 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
Oct 22 Javascript
Javascript实现页面滚动时导航智能定位
May 06 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
Sep 29 Javascript
JavaScript栈和队列相关操作与实现方法详解
Dec 07 Javascript
node中使用es6/7/8(支持性与性能)
Mar 28 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
Apr 17 Javascript
在vscode 中设置 vue模板内容的方法
Sep 02 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
如何做到多笔资料的同步
2006/10/09 PHP
php array的学习笔记
2012/05/10 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
JS实现下拉框的动态添加(附效果)
2013/04/03 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
Django实现发送邮件功能
2019/07/18 Python
tensorflow多维张量计算实例
2020/02/11 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
使用django自带的user做外键的方法
2020/11/30 Python
python爬取抖音视频的实例分析
2021/01/19 Python
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
饲料采购员岗位职责
2013/12/19 职场文书
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
周末问候语大全
2015/11/10 职场文书
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android