封装函数
1、例如我们的需求是输出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在箭头函数中不存在所以不能在箭头函数中使用)
其次 for (var i = 0; i < arguments.length; i++)这段代码是循环需要的实参相加
if (!isNaN(arguments[i]))判断其中每一个实参是否是数字且不是NaN(因为NaN和任何数字运算都是NaN)
t += arguments[i] / 1这段代码的作用是把不是NaN的项相加 其中/的作用是将字符串型的数字转成Number类型