ES6(四)

8. 函数

① ES5中的函数写法:

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

有默认值的形式:

function add(a,b=1){
    return a+b;
}
console.log(add(1));//一个参数即可+默认值;若有两个参数则运行传入的参数,则默认值不起作用

② 主动抛出错误

在使用Vue的框架中,可以经常看到框架主动抛出一些错误,比如v-for必须有:key值。

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));///This is error

③ 函数中的严谨模式

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

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

上边的代码如果运行的话,控制台报错,这是ES6中的一个坑。这个错误的原因就是如果你使用了默认值,再使用严谨模式的话,就会有冲突,所以我们要取消默认值的操作。

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

console.log(add(1,2));//3

④ 获得需要传递的参数个数

如果你在使用别人的框架时,不知道别人的函数需要传递几个参数怎么办?
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,但是如果我们去掉严谨模式,并给第二个参数加上默认值的话,这时候add.length的值就变成了1, 也就是说它得到的是必须传入的参数。

⑤ 箭头函数

上边我们写的add函数,进行一个改变,写成箭头函数。

var add =(a,b=1) => a+b; console.log(add(1));//2

{}的使用

在箭头函数中,方法体内如果是两句话,那就需要在方法体外边加上{}括号。例如下边的代码就必须使用{}.

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

箭头函数中不可加new,也就是说箭头函数不能当构造函数进行使用。

posted @ 2021-01-20 14:22  Sunlightqwq  阅读(64)  评论(0)    收藏  举报