任意数求和是js里面一个重要是的知识点,经常会遇如下问题:
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。
isNaN() 函数可用于判断其参数是否是 NaN,该值表示一个非法的数字(比如被 0 除后得到的结果)。 如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。