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新特性(函数默认参数,箭头函数)相关推荐

  1. C++函数默认参数(函数传入实参个数比形参个数少)

    C++函数默认参数 定义 参数添加顺序 注意事项 转载链接 定义     在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的 ...

  2. C++离航篇——函数默认参数、函数重载、内敛函数

    1.函数的默认参数 2.函数的重载 (1)在相同的作用域内,用同一个函数名定义的多个函数,其中每个函数的参数个数.参数类型不同. 3.内联函数 (1)编译的时候,将函数体代码和相应的实参直接在函数调用 ...

  3. C++笔记(16)函数默认参数和函数重载

    1.默认参数 默认参数指的是函数调用时省略了一个实参时,自动使用默认值.函数默认值的设置,必须通过函数原型,方法是将默认值赋给原型中的参数.注意,对含有多个参数的函数,默认值必须放在右边,即如果某一位 ...

  4. ES6高级:扩展运算符,箭头函数,class类,iterator迭代器

    2. 扩展运算符 ... 2.1 reset参数 reset参数==必须放在最后==,为了替代arguments,在函数形参中使用,==接受剩余参数==,以==数组==的形式去接受 //1. rese ...

  5. html5 跳转参数不显示_HTML5、CSS3、ES6新特性总结

    前言:HTML5.CSS3.ES6新特性,可以说是基础前端的面试的必考题了,以下是关于新特性的基本总结. HTML5: 语义化的区块和段落元素:<section>,<article& ...

  6. ES6学习笔记二arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

  7. C++11 标准新特性:Defaulted 和 Deleted 函数

    https://www.ibm.com/developerworks/cn/aix/library/1212_lufang_c11new/index.html Defaulted 函数 背景问题 C+ ...

  8. c语言带默认参数吗,嵌入式C语言可以带“默认参数”的函数吗

    (文章来源:嵌入式时代) 使用C++开发过程序时,定义函数可以指定默认参数,例如 void fun(int x, int y=3); 在调用 fun() 时第二个参数可以不传递,此时 fun() 函数 ...

  9. ES6基础(var let const 箭头函数)-学习笔记

    文章目录 ES6基础(var let const 箭头函数)- 学习笔记 定义:var let const 箭头函数 数据结构 set map ES6基础(var let const 箭头函数)- 学 ...

最新文章

  1. 退信之550 5.7.1 Unable to relay for *@*.com
  2. matlab signal工具箱,免费试用Signal Processing Toolbox
  3. Linux系统编程---14(回收子线程,回收多个子线程,线程分离,杀死线程)
  4. 泛型通用函数的一些特殊问题的解决方法
  5. 企业实战_21_MyCat_keepalived 安装配置验证
  6. 用PaddlePaddle(飞桨)实现minist数据集的GAN生成
  7. cocos 时间函数需要什么引用_Cocos Creator两个类相互引用(调用)
  8. 习题4-8 高空坠球(20 分)
  9. MySQL学习(五、数据操作语言DML和事务处理语言TCL)
  10. Delphi各个版本的官方下载地址,还在等机会
  11. 测试相貌相似度的软件,快乐相似脸 - 测试你们之间的长相相似度
  12. PDF分割与合并(充分利用Spire的bug实现操作PDF)
  13. 服务器普通硬盘,服务器硬盘和普通硬盘区别
  14. 【JavaWeb开发】Referer防盗链的详解
  15. 吉尔电子烟获1200万天使轮融资 1
  16. 数字图像matlab边缘检测(一)
  17. 【大熊智能nrf connect使用方法
  18. 中科图新地图软件(LocaSpaceViewer)的各种卫片的偏移对比
  19. Xshell7连接VirtualBox虚拟机
  20. 微积分教材新概念 手机版教材美名传

热门文章

  1. ML.NET 1.1 发布,模型构建器升级和新的异常检测算法
  2. 谷歌新研究对神经网络数据并行性提出质疑
  3. 机器学习之单变量线性回归
  4. 亚马逊AWS:用AI和机器学习让所有人受益
  5. 理解深度学习中的学习率及多种选择策略
  6. python中的生成器和迭代器:Generator和Iterator以及yield
  7. latex中\begin{verbatim}以及\verb有什么用?
  8. DeepMind的AI能指导人类的直觉吗?
  9. 如何结合因果与强化学习?看最新《因果强化学习:动机,概念,挑战与应用》报告,85页ppt...
  10. 盘点2019年336起机器人及相关领域投融资事件!注重细分领域深耕行业复苏趋势显现...