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