一、例如咱们的需求是输出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