任意數求和是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