ES6函数新特性

1、带参数默认值的函数
js的函数声明过后,在调用这个函数的时候可以忽略这个函数所带的参数。即声明的函数原本带有参数,但是在调用时不传参也不会报错,那些参数会有一个默认的值

function test(arg1,arg2){
	console.log(arg1);//undefined
	console.log(arg2);//undefined
}
test();

若是在java中,会强制要求输入参数,JS的结果为undefined

在ES6中,可以直接给函数的参数设置一个默认值

function test(arg1,arg2=30){
	console.log(arg1);//undefined
	console.log(arg2);//30
}
test();
function test(arg1="这是第一个参数",arg2){
	return arg1+arg2;
}
console.log(test());//这是第一个参数undefined
这是一个分割线//
function test(arg1="这是第一个参数",arg2){
	return arg1+arg2;
}
console.log(test(30));//NaN
//这里我们传的参数是30而不是“30”,数字30和undefined相加的结果为NaN,当传入"30"时,结果为30undefined

上边函数有两个参数,当我们调用函数时只传入了一个参数,此时这个参数为第一个参数,但是如果我们想只传入第二个参数,将第一个参数设置为undefined

function test(arg1="这是第一个参数",arg2){
	return arg1+arg2;
}
console.log(test(undefined,"这是第二个参数"));//这是第一个参数这是第二个参数

2、参数默认值为表达式的函数

function expression(name,say=getStr()){
	console.log(name+say);
}
function getStr(){
	return "Hello!"
}
expression("xhh");//xhhHello!

3、函数的rest参数
当为函数传入多个参数时,可以使用arguments对象,例如

function foo(){
    for(let num of arguments){
        console.log(num);
    }
}
foo(1,2,3);
/*
1
2
3
*/

ES6中新增了rest参数(形式为…变量名)。获取剩余的参数,函数中所有多余的参数都会放进数组中然后赋值给这个rest参数。

function foo(...args){
    console.log(args);
}
foo(1,2,3,4,5);//(5) [1, 2, 3, 4, 5]

注意:rest后边不允许再有其他的参数,否则就会报错。

参考:
https://www.cnblogs.com/swzx-1213/p/12628164.html
https://blog.csdn.net/hjc256/article/details/86542058

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值