js number 丟失精度 js里==和===有什么區(qū)別?
js里==和===有什么區(qū)別?區(qū)別在于進(jìn)行雙等號(hào)比較時(shí):首先檢查兩個(gè)操作數(shù)的數(shù)據(jù)類(lèi)型,如果它們相同,則進(jìn)行===比較。如果它們不同,它們?cè)敢鉃槟M(jìn)行類(lèi)型轉(zhuǎn)換,然后在將它們轉(zhuǎn)換為相同類(lèi)型后進(jìn)行比較。進(jìn)行
js里==和===有什么區(qū)別?
區(qū)別在于進(jìn)行雙等號(hào)比較時(shí):首先檢查兩個(gè)操作數(shù)的數(shù)據(jù)類(lèi)型,如果它們相同,則進(jìn)行===比較。如果它們不同,它們?cè)敢鉃槟M(jìn)行類(lèi)型轉(zhuǎn)換,然后在將它們轉(zhuǎn)換為相同類(lèi)型后進(jìn)行比較。進(jìn)行===比較時(shí),如果它們不同,則直接為false。
operator1===operator2,operator1===operator2
比較過(guò)程:
雙等號(hào)==:
(1)如果兩個(gè)值類(lèi)型相同,則比較三個(gè)等號(hào)(==)](2)如果兩個(gè)值類(lèi)型不同,則可能相等,所以在比較中,類(lèi)型轉(zhuǎn)換應(yīng)該按照以下規(guī)則進(jìn)行:
1)如果一個(gè)為null,另一個(gè)未定義,則等于
2)如果一個(gè)為字符串,另一個(gè)為數(shù)值,將字符串轉(zhuǎn)換為字符串并將其更改為數(shù)值,然后比較
]三等號(hào)==:
](1)如果類(lèi)型不同,則不能相等
(2)如果兩個(gè)值都是數(shù)值且值相同,則它們相等;如果其中至少有一個(gè)值為Nan,則它們不相等。(要判斷一個(gè)值是否為Nan,只能用isnan()來(lái)判斷)
(3)如果兩個(gè)值都是字符串,并且每個(gè)位置的字符都相同,則它們相等,否則它們不相等。
(4)如果兩個(gè)值都是true或false,則它們相等
(5)如果兩個(gè)值引用同一個(gè)對(duì)象或函數(shù),則它們相等,否則它們不相等
(6)如果兩個(gè)值都是null或未定義,則它們相等
~]==比較轉(zhuǎn)換為同一類(lèi)型的值,以查看值是否相等
有關(guān)例如,“1”==1 True
==如果類(lèi)型不同,則結(jié)果不相等
例如,“1”==1 Not True
詳細(xì)差異:
1。對(duì)于字符串、數(shù)字等基本類(lèi)型,==和===是不同的
1)不同類(lèi)型之間比較,==比較“轉(zhuǎn)換為同一類(lèi)型的值”看“值”是否相等,==如果類(lèi)型不同,結(jié)果不相等
2)同一類(lèi)型比較,直接“值”比較,兩個(gè)結(jié)果是相同的
2。對(duì)于數(shù)組、對(duì)象等級(jí)別類(lèi)型,==和===沒(méi)有區(qū)別
比較指針地址
3。基本類(lèi)型和高級(jí)類(lèi)型,==和===不同
1)對(duì)于==,將高級(jí)類(lèi)型轉(zhuǎn)換為基本類(lèi)型并比較值
2)由于類(lèi)型不同,==結(jié)果為false