一、例如咱們的需求是輸出sum( 1,3,NaN,'qqq','4')的和爲8
複製代碼
function sum() {
var t = 0
for (var i = 0; i < arguments.length; i++) {
//arguments[i]對應的就是每個實參
//t+=arguments[i] //不考慮非合法數字
if (!isNaN(arguments[i])) {
//得是數字並且還不能是NaN
t += arguments[i] / 1
}
}
return t
}
console.log(sum(1, 3, NaN, 'qqq','4'))
複製代碼
此函數主要的關鍵點在 arguments[i]
這裏 arguments表明實參的集合在咱們不知道到底須要多少實參時用arguments......... (注 arguments在箭頭函數中不存在因此不能在箭頭函數中使用)bash
其次 for (var i = 0; i < arguments.length; i++)
這段代碼是循環須要的實參相加 if (!isNaN(arguments[i]))
判斷其中每個實參是不是數字且不是NaN(由於NaN和任何數字運算都是NaN)函數
t += arguments[i] / 1
這段代碼的做用是把不是NaN的項相加 其中/
的做用是將字符串型的數字轉成Number類型ui