任意数求和是js里面一个重要是的知识点,常常会遇以下问题:bash
sum('1','w',2,5,'q',NaN)
复制代码
arguments 任意数求和:无论函数执行的时候,传递多少实参值进来,咱们均可以求和。 要想作到求和,咱们须要使用到 for 循环,因此要首先判断循环的轮数,而后再进行判断,是否可以累加。 以下:函数
function sum(){
var num = 0;
for (var i = 0;i<arguments.length;i++){
//加以前 先判断一下 能不能累加
if(typeof arguments[i] ==='number' && !isNaN(arguments[i])){
num = num + arguments[i]
}
}
return num;
}
console.log(sum('1','w',2,5,'q',NaN))
复制代码
这里用到了函数的相关知识点,若 number 和 isNaN。ui
isNaN() 函数可用于判断其参数是不是 NaN,该值表示一个非法的数字(好比被 0 除后获得的结果)。 若是把 NaN 与任何值(包括其自身)相比获得的结果均是 false,因此要判断某个值是不是 NaN,不能使用 == 或 === 运算符。spa