====================本系列文章沒有什麼高深的理論====================
====================純粹是以一個菜雞的視角來分享====================
減法(-)跟加法一樣,如果是相同的數字計算,那麼就是單純的數值計算。
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
false經過Number()轉成數字後會變成0
200 - false // 200
true經過Number()轉成數字後會變成1
200 - true // 199
200 - undefined // NaN
200 - null // 200
會先透過物件的valueOf()方法,先求得對應的數值會得到NaN
,那麼結果就會是NaN
。
如果沒有valueOf()
方法,則會透過toString()先轉成字串後,再以Number()
嘗試將數值轉成數字後才進行運算。
200 - {} // NaN
今日的分享就到這囉,我們明天見,掰掰!