iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
自我挑戰組

JavaScript101與人生幹話系列 第 20

JavaScript101與人生幹話 - JavsScript的強制轉型與轉換型別-邏輯運算子==與!=的轉型

  • 分享至 

  • xImage
  •  

邏輯運算子==與!=的轉型

在非嚴謹模式下==、!=會直接比較值,而不是型別。

console.log(null==undefined)//true
console.log(null!=undefined)//false
console.log(null==0)//false
console.log(null!=0)//true
console.log(null==null)//true
console.log(null!=null)//false
console.log(null!=true)//ture
console.log(null==true)//false
console.log(null!=false)//true
console.log(null==false)//false
console.log(undefined==0)//false
console.log(undefined!=0)//true
console.log(undefined!=true)//true
console.log(undefined==true)//false
console.log(undefined!=false)//true
console.log(undefined==false)//false
console.log(true=='1')//true
console.log(true==1)//true
console.log(false=='0')//true
console.log(false==0)//true
console.log('123'==132)//true
console.log(''==0)//true

這邊可以看到null、undefined在==與!=邏輯運算子中的轉型又與數字、字串、布林的轉型不同。

只要遇到 == 或 !=先比較值
null == 0 為false,因為null沒有值,0的值為0。
null == '' 為false,因為null沒有值,''的值為''。
null == undefined 為true,因為null沒有值undefined也沒有,''的值為''。
true 在==中會被轉成1、false會被轉為0

從上面的邏輯運算子轉型的範例得到以下表格的結論

型別 在==或!=轉換後的型別
Boolean true轉換為1、false轉換為0
string 數字字串會轉為數字,空字串轉為0,此外都為NaN
null 沒有值
undefined 沒有值

參考資料

JavaScript type coercion explained
javascript中tostring()和valueof()的用法及兩者的區別
你懂 JavaScript 嗎?#8 強制轉型(Coercion)

人生幹話-生技夢又醒

開始接手風險管理,狀態又回到剛到職的時候,除了要一邊惡補法規之外,還要處理每個醫材每年需要固定更新的風險文件,根據型號與國家法規的不同要更新的文件基本上文件的數量會隨著公司每年申請新的醫材呈現等比級數的上升,到我接手的時候基本上已經不是一個人能夠為護的數量了,這也是原來的負責人轉部門的原因是,工作變多,又沒加薪,加上又有魔王級的專案來到,這也是我看到這家公司不能久待的第二個點,不會真的照你的能力與工作量加薪。


上一篇
JavaScript101與人生幹話 - JavsScript的強制轉型與轉換型別 - 數字
下一篇
JavaScript101與人生幹話-JS 常見縮寫
系列文
JavaScript101與人生幹話30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言