====================本系列文章沒有什麼高深的理論====================
====================純粹是以一個菜雞的視角來分享====================
-
減法(-)跟加法一樣,如果是相同的數字計算,那麼就是單純的數值計算。
const bear = 10 - 5;
console.log(bear); // 5
如果是 Infinity(無限大or無限小) 的話,就像前面所說的 Infinity
是一種概念,所以沒有辦法相減。
Infinity - Infinity // NaN
-Infinity - -Infinity // NaN
-Infinity - Infinify // -Infinity
Infinty - -Infinity // Infinity
只要是其中一個 NaN,那麼結果必定會是 NaN
。
不過跟加法不同的地方是,在減法的情況時,只要其中一個不是數字的時候,會有一些情況發生。
在做減法運算時,只要其中一方屬於基本型別而且不是數字的時候,那麼 JavaScript 會先透過 Number() 將數值轉成數字,最後才進行運算。
200 - "100" // 100
200 = "zxc" // NaN
200 - false // 200
# false 經過 Number() 轉成數字後會變成 0
200 - true // 199
# true 經過 Number() 轉成數字後會變成 1
200 - undefined // NaN
200 - null // 200
會先透過物件的 valueOf() 方法,先求得對應的數值會得到 NaN
,那麼結果就會是 NaN
。
如果沒有 valueOf()
方法,則會透過 toString() 先轉成字串後,再以 Number()
嘗試將數值轉成數字後才進行運算。
200 - {} // NaN
今日的分享就到這囉,我們明天見,掰掰!