专栏首页wfacebossES6系列_7之箭头函数和扩展

ES6系列_7之箭头函数和扩展

1.默认值

在ES6中给我们增加了默认值的操作相关代码如下:

function add(a,b=1){
    return a+b;
}
console.log(add(1));

可以看到现在只需要传递一个参数也是可以正常运行的。

输出结果为:2。

2.主动抛出错误

ES6中我们直接用throw new Error( xxxx ),就可以抛出错误。

function add(a,b=1){
    if(a == 0){
        throw new Error('This is error')
    }
     return a+b;
}
console.log(add(0));

在控制台可看到异常为:

3.函数中的严谨模式

我们在ES5中就经常使用严谨模式来进行编程,但是必须写在代码最上边,相当于全局使用。在ES6中我们可以写在函数体中,相当于针对函数来使用。日系:

function add(a,b=1){
    'use strict'
    if(a == 0){
        throw new Error('This is error');
    }
     return a+b;
}
console.log(add(1));

上边的代码如果运行的话,你会发现浏览器控制台报错,这个错误的原因就是如果你使用了默认值,再使用严谨模式的话,就会有冲突,所以我们要取消默认值的操作,这时候你在运行就正常了。

function add(a,b){
    'use strict'
    if(a == 0){
        throw new Error('This is error');
    }
     return a+b;
}
console.log(add(1,2));

结果为3。

4.获得需要传递的参数个数

 ES6为我们提供了得到参数的方法(xxx.length).我们用上边的代码看一下需要传递的参数个数。

function add(a,b){
    'use strict'
    if(a == 0){
        throw new Error('This is error');
    }
     return a+b;
}
console.log(add.length);//2

这时控制台打印出了2,但是如果我们去掉严谨模式,并给第二个参数加上默认值的话,如下:

function add(a,b=1){

    if(a == 0){
        throw new Error('This is error');
    }
    return a+b;
}
console.log(add.length);//1

这时控制台打印出了1。

总结:它得到的是必须传入的参数。

5.箭头函数

在箭头函数中,方法体内如果是两句话,那就需要在方法体外边加上{}括号

var add =(a,b=1) => {
    console.log('hello world')
    return a+b;
};
console.log(add(1));//2

待续。。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • (23/24) webpack实战技巧:如何在webpack环境中使用Json

    在webpack1或者webpack2版本中,若想在webpack环境中加载Json文件,则需要加载一个json-loader的loader进来的。但是在web...

    wfaceboss
  • Python小知识点(2)

    我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。

    wfaceboss
  • 如何编写方法

    wfaceboss
  • ES6基础语法之箭头函数

    ES6直接在参数中=默认值就解决,上述中只是出一个参数的默认值,多个参数下ES6的便利性毋庸置疑!

    十月梦想
  • Android开发笔记(五十八)铃声与震动

    SeekBar继承自进度条ProcessBar,有关ProcessBar的介绍见《Android开发笔记(四十九)异步任务处理AsyncTask》。Seek...

    用户4464237
  • LintCode 550. 最常使用的K个单词II(自定义set(可修改数据的优先队列) + map)

    100% 数据通过测试 总耗时 1314 ms 您的提交打败了 37.80% 的提交!

    Michael阿明
  • javascript中bind绑定接收者与函数柯里化

    如果我已经把匿名函数抽象出来,做成了一个公共的方法 (可能其他地方也会用的到) 那么,这个遍历会是这样的;

    liulun
  • 面试| Python 自动化测试面试经典题目回顾

    1、super 是干嘛用的?在 Python2 和 Python3 使用,有什么区别?为什么要使用 super?请举例说明。

    霍格沃兹测试开发
  • Python3 操作 HDFS

    py3study
  • Oracle 单实例数据库修改数据文件路径

    近几日,公司一业务需求要将一些 dump 文件导入到测试库,但是却有一个头痛的事,发现数据库所在的根目录已经 100%,这样肯定是没办法导入 dump 数据文件...

    JiekeXu之路

扫码关注云+社区

领取腾讯云代金券