<script>
//不定项求和,
//参数传递sum2(1,2) sum2(2,3,4,5,6)
function sum2() {
//全部实参都在argumments中存储,咱们要作的是 把arguments中的每一项加起来
//而后把结果返回出去
var num = 0; //=var 一个变量用来接收结果
for (var i = 0; i < arguments.length; i++) {
// arguments[i] 函数的每一个参数的条目第一个条目的索引从0开始i表明从0开始
num += arguments[i] //结果累加
}
return num
}
var res1 = sum2(1, 2)//3
var res2 = sum2(2, 3, 4, 5, 6)//25
console.log(res1,res2)
</script>
复制代码
不定项求和例2
<script>
//不定项求和(2+5)
function sum2() {
var num = 0;
for (var i = 0; i < arguments.length; i++) {
if (typeof arguments[i]=='number'&& !isNaN(arguments[i])) {
//先利用typeof判断 过滤掉非数字类型,由于NaN也属于数字类型防止加起来结果为NaN
//因此须要使用isNaN判断是否为非有效数字
num += arguments[i];//结果累加
}
}
return num;
}
console.log(sum2('1', 'w', 2, 5, 'q',NaN)) //7
</script>
复制代码
不定项求和例3
<script>
//思路==>因为结果须要把字符串的数字也相加因此先把每一项转化为数字类型,在判断数字类型的项是否为非有效数字
function sum() {
var str = 0;
for (var i = 0; i < arguments.length; i++) {
var col = Number(arguments[i])
if (!isNaN(col)) {
str += col;
}
null;
}
return str;
}
let total = sum(10, 20, '30', '哈哈哈', '40',NaN,undefined);//100
console.log(total);
复制代码
注意
1.函数别忘记返回值(return)不然结果为undefined
2.ES6中的箭头函数没有本身的 arguments 对象
3.ES6中的箭头函数没有本身的 this 复制代码