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