ES6里面的参数问题

1。默认参数

在es6里面其中的默认参数给我们省去了很多的麻烦。我们可以避免在函数体里面给传进来的参数设置初始值了,我们直接给其中的参数设置其中的默认的参数就可以了。

var add = new Function("first","second=first","return first+second");
console.log(add(1));

这里就是给其中的second设置了默认的参数。

2.不定参数

不定参数里面会有...这个符号的,其中这里不会限制其中的传进去的参数的个数,说实话,我觉得其中的不定参数和arguements的功能是很相似的。下面看一段代码:

function checkArgs(...args){
	console.log(args.length);
	console.log(arguments.length);
	console.log(args[0],arguments[0]);
	console.log(args[1],arguments[1]);
}

checkArgs("a","b");
结果是:
2
2
a a
b b

这里需要注意的就是其中的在一个函数的参数里面,不定参数的数目只能是一个,而且不定参数的后面不能再跟其他的参数。

3.对于展开运算符:

说到其中的展开运算符,我们先看几行代码:

var arr=[1,2,8,9,55,7];
var max=Math.max.apply(Math,arr);
var max1=Math.max(arr);
var a=Math.max(1,2,8,9,55,7);
alert(a) //55
alert(max); //55
alert(max1); //NaN

这里可以看到其中调调Math.max()方法的时候里面可以传入许多的数字作为参数,它就会返回的是一个里面做大的数字,但是给里面传入一个数组的情况下,却不能得到你想要的结果。我们应该利用其中的apply的方法,将其中的this对象绑定在Math对象上,然后传进去数组的名字才能取到其中的最大的值。

有什么更好的方法吗?有,那就是es6里面的展开运算符

let values = [25,30,50,75,100];
console.log(Math.max(...values));

展开运算符和不定参数形式上看上去很像。js的引擎会将参数数组分割为各自独立的参数然后依次传入。将最后的结果,进行返回。

其中可以将展开运算符和其他的正常的参数混合使用。

let values = [-25,-30,-50,-75,-100];

console.log(Math.max(...values,0));
其中Math.max()先用展开运算符传入数组中的值,又传入参数0。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值