無意中點擊項目,發現一個問題,關於項目中有一個值是需要計算得出這個值的然後保留3位小數
我直接用a/b 然後用了toFixed(3)這個方法,然後對等於0 的情況做了處理讓值直接等於0
然後,一直也沒發現問題,剛纔忽然出現了NaN的情況,檢測了一下字段
發現了問題,以下總結以下出現問題的情況
console.log(0/0) NaN
console.log(0/1) 0
console.log(1/0) Infinity
我的問題就是第一種,把0 作爲了除數 導致問題的出現
Infinity 這是一種無窮的狀態
解決完問題後,決定記錄一下,因爲老是忽略關於0 的情況,下面就記錄一下
1:非數字的運算
5 - 'a' // NaN
在計算的時候把a 解析爲數字,但是a 不是數字所以出現NaN
2: 一些數學函數的運算
Math.acos(x) x -1 到 1 的一個數爲參數,返回一個 0 到 pi (弧度)的數值。如果傳入的參數值超出了限定的範圍,將返回 NaN
Math.acos(-2); // NaN
Math.acos(-1); // 3.141592653589793
Math.acos(0); // 1.5707963267948966
Math.acos(0.5); // 1.0471975511965979
Math.acos(1); // 0
Math.acos(2); // NaN
Math.sqrt(-1) //NaN 返回正確舍入的一個double值的正平方根 所以如果爲負值爲NaN
3: 0/0 這種情況就是我上訴的問題
嗯~~~在總結一些類型爲false 的情況吧!
undefined(未定義,找不到值時出現)
null(代表空值)
false(布爾值的false,字符串"false"布爾值爲true)
0(數字0,字符串"0"布爾值爲true)
NaN(無法計算結果時出現,表示"非數值";但是typeof NaN==="number")
""(雙引號)或''(單引號) (空字符串,中間有空格時也是true)