我們知道,「=」、「==」 和「===」這三者之間是不一樣的。具體怎樣的不一樣呢?今天來說說「==」的轉換規則。
下面是一張「==」強制轉換規則表。
引數型別1
引數型別2
強制轉換
null
undefined
不轉換,總是返回true
null或undefined
其它任何非null或undefined的型別
不轉換,總是返回false
原始型別:string、number或boolean
date物件
將原始型別轉換成數字;將date物件轉換為原始型別。(優先嘗試tostring方法,再嘗試valueof方法)
原始型別:string、number或boolean
非data物件
將原始型別轉換成數字;將非date物件轉換為原始型別。(優先嘗試tostring方法,再嘗試valueof方法)
原始型別:string、number或boolean
原始型別:string、number或boolean
將原始型別轉換成數字
看了上面的表,我們再來細說一下==的個別常遇見的轉換規則。
1.number型別與string型別比較,string會轉換為number型別
'' == '0' //false
0 == ''//true;
0 == '0'//true
' \t\r\n '==0//true
2.null和undefined型別比較始終相等
null == undefined //true
我之前有寫過一篇null和undefined的區別的文章,有興趣的話可以移駕看看哦~
3.布林型別與其它任何型別進行比較,布林型別將會轉換為number型別
false == 'false'//false
false == '0'//true
false == null//false
null == undefined //true
4.number型別或string型別與object型別進行比較,number或者string型別都會轉換為object型別
var a = 0, b = {};
a == b//false
從上面的表和這四種例子來看,==的轉換規則並不夠嚴謹,如果語句需要特別嚴謹的話,珍愛生命,請使用===和!===
biu~~~~~~~~
javascript js 中判斷資料型別
1.undefined 如果這個值未定義的話,返回該值 2.boolean 如果這個值是布林值的話 3.string 如果這個值是字串的話 4.number 如果這個值是數值的話 5.object 如果這個值是物件或者null的話 6.function 如果這個值是函式的話.注意 有些時候typeo...
matlab中的轉字元
轉義字元 英文叫做 escape characters 應該譯作 被遺忘的字元 或者 逃跑的字元 多好啊。幹嘛搞的那麼學術?如果你要定義乙個字串,可是字串裡面有個單引號,可能就會遇到困難。比如我定義 s 這個句子中有乙個單引號 怎麼吧 matlab會報錯 複製 第乙個單引號和第二個單引號配成一對。得...
VC中radio的用法 轉
radio button 使用 使用方法一 在工程中新增控制項後,直接在控制項的click事件中寫入需要的 即可 使用方法二 1.建立乙個基於對話方塊的用用 程式,在其中加入三個radio button,id分別為 idc radio1,idc radio2,idc radio3 2.控制項的初始化...