<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 複製代碼