ES6新特性(函数默认参数,箭头函数)
ES6新特性之 函数参数的默认值写法 和 箭头函数。
1、函数参数的默认值
ES5中不能直接为函数的参数指定默认值,只能通过以下的变通方式:
从上面的代码可以看出存在一个问题,当传入的参数为0或者false时,会直接取到后面的值,而不是传入的这个参数值。
那怎么解决呢?对于上图的代码,可以通过判断是否传入了num参数,没有就用默认值:
这种做法还是很麻烦的,而ES6则直接在参数定义里面设置函数参数的默认值,而且不用担心传入参数是0或者false会出错了:
2、箭头函数
箭头函数用 => 符号来定义。
箭头函数相当于匿名函数,所以采用函数表达式的写法。
左边是传入函数的参数,右边是函数中执行的语句。
相当于
上面是完整的写法,左边小括号,右边大括号,而下面的情况可以简写:
(1)当要执行的代码块只有一条return语句时,可省略大括号和return关键字:
(2)当传入的参数只有一个时,可以省略小括号:
相当于
(3)当不需要参数时,使用空的圆括号:
相当于
箭头函数在回调函数中是很简洁的,像这样:
在排序中:
需要注意的是, 箭头函数没有自己的this、arguments、super、new.target,它们分别指向外层函数的相应变量。
以前在ES5中使用this有点麻烦,这种问题很常见:
这就需要在嵌套函数外层使用that = this,然后内层使用that,就是下面这样子:
但是现在有了箭头函数,不再需要使用that = this或 _this = this 这种代码啦,因为箭头函数中的this直接就是外层函数中的this,代码更简单了:
Oh,wonderful !!!
ES6还有好多惊喜,以后再整理笔记放上来吧~
写在后面的话
好吧,虽然木有什么人看,但我还是会认真对待每一篇博文(或者叫随笔?这是什么鬼!),这也算是我的心血了 = =
自学前端很苦,遇到问题只能网上查资料,在此过程中,被网上其他前端ers无私分享知识和经验的行为所深深感动,因此记录下自己的学习历程,分享学习感悟,既是对自己所学的总结升华,也算是一种回馈,希望帮到其他学习前端的朋友啦~
转载于:https://www.cnblogs.com/zhenwen/p/5724236.html
ES6新特性(函数默认参数,箭头函数)相关推荐
- C++函数默认参数(函数传入实参个数比形参个数少)
C++函数默认参数 定义 参数添加顺序 注意事项 转载链接 定义 在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的 ...
- C++离航篇——函数默认参数、函数重载、内敛函数
1.函数的默认参数 2.函数的重载 (1)在相同的作用域内,用同一个函数名定义的多个函数,其中每个函数的参数个数.参数类型不同. 3.内联函数 (1)编译的时候,将函数体代码和相应的实参直接在函数调用 ...
- C++笔记(16)函数默认参数和函数重载
1.默认参数 默认参数指的是函数调用时省略了一个实参时,自动使用默认值.函数默认值的设置,必须通过函数原型,方法是将默认值赋给原型中的参数.注意,对含有多个参数的函数,默认值必须放在右边,即如果某一位 ...
- ES6高级:扩展运算符,箭头函数,class类,iterator迭代器
2. 扩展运算符 ... 2.1 reset参数 reset参数==必须放在最后==,为了替代arguments,在函数形参中使用,==接受剩余参数==,以==数组==的形式去接受 //1. rese ...
- html5 跳转参数不显示_HTML5、CSS3、ES6新特性总结
前言:HTML5.CSS3.ES6新特性,可以说是基础前端的面试的必考题了,以下是关于新特性的基本总结. HTML5: 语义化的区块和段落元素:<section>,<article& ...
- ES6学习笔记二arrow functions 箭头函数、template string、destructuring
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...
- C++11 标准新特性:Defaulted 和 Deleted 函数
https://www.ibm.com/developerworks/cn/aix/library/1212_lufang_c11new/index.html Defaulted 函数 背景问题 C+ ...
- c语言带默认参数吗,嵌入式C语言可以带“默认参数”的函数吗
(文章来源:嵌入式时代) 使用C++开发过程序时,定义函数可以指定默认参数,例如 void fun(int x, int y=3); 在调用 fun() 时第二个参数可以不传递,此时 fun() 函数 ...
- ES6基础(var let const 箭头函数)-学习笔记
文章目录 ES6基础(var let const 箭头函数)- 学习笔记 定义:var let const 箭头函数 数据结构 set map ES6基础(var let const 箭头函数)- 学 ...
最新文章
- 退信之550 5.7.1 Unable to relay for *@*.com
- matlab signal工具箱,免费试用Signal Processing Toolbox
- Linux系统编程---14(回收子线程,回收多个子线程,线程分离,杀死线程)
- 泛型通用函数的一些特殊问题的解决方法
- 企业实战_21_MyCat_keepalived 安装配置验证
- 用PaddlePaddle(飞桨)实现minist数据集的GAN生成
- cocos 时间函数需要什么引用_Cocos Creator两个类相互引用(调用)
- 习题4-8 高空坠球(20 分)
- MySQL学习(五、数据操作语言DML和事务处理语言TCL)
- Delphi各个版本的官方下载地址,还在等机会
- 测试相貌相似度的软件,快乐相似脸 - 测试你们之间的长相相似度
- PDF分割与合并(充分利用Spire的bug实现操作PDF)
- 服务器普通硬盘,服务器硬盘和普通硬盘区别
- 【JavaWeb开发】Referer防盗链的详解
- 吉尔电子烟获1200万天使轮融资 1
- 数字图像matlab边缘检测(一)
- 【大熊智能nrf connect使用方法
- 中科图新地图软件(LocaSpaceViewer)的各种卫片的偏移对比
- Xshell7连接VirtualBox虚拟机
- 微积分教材新概念 手机版教材美名传
热门文章
- ML.NET 1.1 发布,模型构建器升级和新的异常检测算法
- 谷歌新研究对神经网络数据并行性提出质疑
- 机器学习之单变量线性回归
- 亚马逊AWS:用AI和机器学习让所有人受益
- 理解深度学习中的学习率及多种选择策略
- python中的生成器和迭代器:Generator和Iterator以及yield
- latex中\begin{verbatim}以及\verb有什么用?
- DeepMind的AI能指导人类的直觉吗?
- 如何结合因果与强化学习?看最新《因果强化学习:动机,概念,挑战与应用》报告,85页ppt...
- 盘点2019年336起机器人及相关领域投融资事件!注重细分领域深耕行业复苏趋势显现...