建立一個傳回值乘以 50 並增加 6 的函數。如果輸入的值是字串,則應傳回「Error」。
typeof
方法判斷型別類型,需要注意該方法回傳的是字串,且皆為小寫考量到萬一傳入 String 和 Number 以外的型別,會有預期外的狀況,雖然題目並沒有特別定義這塊,但在這邊的型別判斷上,筆者是撰寫成「當傳入值的型別是 Number 」時才進行下一步運算。
function problem(x) {
return typeof x !== "number" ? "Error" : x * 50 + 6;
}
有發現到一個蠻特別的方法:Number.isFinite()
該方法會檢查傳入值是否為 Number,且符合以下條件時才會回傳 true:
範例如下
Number.isFinite(Infinity); // false
Number.isFinite(NaN); // false
Number.isFinite(-Infinity); // false
因此前面的程式可以改寫如下:
function problem(x) {
return Number.isFinite(x) ? x * 50 + 6 : "Error";
}
相較於 isNaN() 方法需要另外判斷空字串,這個方法在判斷上更加全面
今天就介紹到這裡,如果大家有更好的寫法歡迎一起來討論哦~