js求和运算在可变参数的情况下ES3、ES5和ES6的写法区别

//ES3、ES5的写法
function foo(){
	var arr = Array.prototype.slice.call(arguments);
	var sum = 0;
	arr.forEach(function(item){
		sum += item;
	});	

	return sum;
}

console.log(foo(1, 2, 3));    //6

//ES6的写法
function foo(...arr){    //arr就是可变参数列表
	let sum = 0;
	arr.forEach(item => {
		sum += item;
	});

	return sum;
}

console.log(foo(1, 2, 3));    //6

从以上代码来看,ES6的写法就简便很多。其中Array.prototype.slice.call(arguments)能够将arguments转成数组,而三个点“...”是ES6的扩展运算符。

posted @ 2018-04-18 17:28  豫见陈公子  阅读(277)  评论(0编辑  收藏  举报