iT邦幫忙

2022 iThome 鐵人賽

DAY 19
0
自我挑戰組

JavaScript101與人生幹話系列 第 19

JavaScript101與人生幹話 - JavsScript的強制轉型與轉換型別 - 數字

  • 分享至 

  • xImage
  •  

數字的轉型

數字的隱性(implicit)轉型

數字轉型相較於Boolean與String的自動轉型有那麼一 (億) 點不同
直接看以下範例吧

1.在+號裡

 console.log(+'123',(typeof (+'123')))//123 number
 console.log(true+1,(typeof(true+1)))//2 number
 console.log(false+1,(typeof(false+1)))//1 number
 console.log(null+123,(typeof(null+123)))//123 number
 console.log(undefined+123,(typeof(undefined+123)))//NaN number

注意
只要+號不與字串相連,其他型別就不會被轉成字串

2.在-號裡

 console.log(-'123',(typeof (+'123')))//-123 number
 console.log(true-1,(typeof(true-1)))//0 number
 console.log(false-1,(typeof(false+1)))//-1 number
 console.log(null-123,(typeof(null-123)))//-123 number
 console.log(undefined-123,(typeof(undefined-123)))//NaN number

3.在乘(*)、除(/)裡

console.log('123'*'2',(typeof ('123'*'2')))//246 number
console.log('123'/'2',(typeof ('123'/'2')))//61.5 number
console.log('hello'/'2',(typeof ('hello'/'2')))//NaN number
console.log(null*1,(typeof (null*1)))//0 number
console.log(null/1,(typeof (null/1)))//0 number
console.log(false*1,(typeof (false*1)))//0 number
console.log(false/1,(typeof (false/1)))//0 number
console.log(true*55,(typeof (true*55)))//55 number
console.log(true/1,(typeof (true/1)))//1 number
console.log(undefined*2,(typeof (undefined*2)))//NaN number
console.log(undefined/2,(typeof (undefined/2)))//NaN number

注意
數字字串只要遇到乘、除運算子就會轉為數字計算,如果不能計算就會呈現NaN

數字的顯性(explicit)轉型

一樣直接上範例

console.log(Number('123'),(typeof(Number('123'))))//123 number
console.log(Number(false),(typeof(Number(false))))//0 number
console.log(Number(true),(typeof(Number(true))))//1 number
console.log(Number(null),(typeof(Number(null))))//0 number
console.log(Number(undefined),(typeof(Number(undefined))))//Nan number
console.log(Number('hello'),(typeof(Number('hello'))))//Nan number
console.log(Number('123ok'),(typeof(Number('123ok'))))//Nan number

從上面的數字轉型的範例得到以下表格的結論

型別 轉換為數字型別
Boolean true轉換為1、false轉換為0
string 數字字串會轉為數字,,空字串轉為0會根據+-決定所轉數字的正負
null 0
undefined 無法轉換

人生幹話-轉職的前半年累的跟狗一樣

抱持著至少是家上市的大公司,加薪與升職應該也會比較有規章吧,事情不是白痴所想的這麼簡單,那個白癡就是我,一開始的前三個月,由於是第一次全職做QA的工作,所以下了班基本上就是先暴睡6小時,到半夜再吃飯洗澡後再繼續睡到上班前,就以為已經上手了工作之後發生了突發事件,風險管理,由於原本負責的人申請調部門,然後風險管理主管明明知道卻沒有找人交接,再風險管理文件準備要出包的時候把我拉過去救火,說做得好的話就會加薪,而且以後風險管理的薪水很高之類的,然後我的工作內容就更動啦,不用說當然是沒有加薪,但是事情更多了。


上一篇
JavaScript101與人生幹話 - JavsScript的強制轉型與轉換型別 - 布林
下一篇
JavaScript101與人生幹話 - JavsScript的強制轉型與轉換型別-邏輯運算子==與!=的轉型
系列文
JavaScript101與人生幹話30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言