js三個點(diǎn) 淺析js中2個等號與3個等號的區(qū)別?
淺析js中2個等號與3個等號的區(qū)別?兩個等號(=)和三個等號(=)之間的差:1。2. “==”表示標(biāo)識->標(biāo)識。當(dāng)使用三個等號時(shí),“===”不需要類型轉(zhuǎn)換。如果兩邊的值的類型不同,那就意味著它們一
淺析js中2個等號與3個等號的區(qū)別?
兩個等號(=)和三個等號(=)之間的差:
1。
2. “==”表示標(biāo)識->標(biāo)識。當(dāng)使用三個等號時(shí),“===”不需要類型轉(zhuǎn)換。如果兩邊的值的類型不同,那就意味著它們一定是不相等的。
js里==和===有什么區(qū)別?
區(qū)別在于進(jìn)行雙等號比較時(shí):首先檢查兩個操作數(shù)的數(shù)據(jù)類型,如果它們相同,則進(jìn)行===比較。如果它們不同,它們愿意為您進(jìn)行類型轉(zhuǎn)換,然后在將它們轉(zhuǎn)換為相同類型后進(jìn)行比較。進(jìn)行===比較時(shí),如果它們不同,則直接為false。
operator1===operator2,operator1===operator2
比較過程:
雙等號==:
(1)如果兩個值類型相同,則比較三個等號(==)](2)如果兩個值類型不同,則可能相等,所以在比較中,類型轉(zhuǎn)換應(yīng)該按照以下規(guī)則進(jìn)行:
1)如果一個為null,另一個未定義,則等于
2)如果一個為字符串,另一個為數(shù)值,將字符串轉(zhuǎn)換為字符串并將其更改為數(shù)值,然后比較
]三等號==:
](1)如果類型不同,則不能相等
(2)如果兩個值都是數(shù)值且值相同,則它們相等;如果其中至少有一個值為Nan,則它們不相等。(要判斷一個值是否為Nan,只能用isnan()來判斷)
(3)如果兩個值都是字符串,并且每個位置的字符都相同,則它們相等,否則它們不相等。
(4)如果兩個值都是true或false,則它們相等
(5)如果兩個值引用相同的對象或函數(shù),則它們相等,否則它們不相等
(6)如果兩個值都是null或未定義,則它們相等
在大多數(shù)編程語言中“=”是賦值,JavaScript也是賦值。例如,如果x=1,則將1賦給變量x。稍后使用x時(shí),x的值為1。例如,如果x=1,則x1的結(jié)果為2。此外,還有另一個用法,x=x1,這在數(shù)學(xué)上是站不住腳的,但在編程語言中,它意味著將x的當(dāng)前值加1,然后將結(jié)果賦給x本身。如果x=1,x=x1,那么x等于2。如果在一側(cè)執(zhí)行x=x1,則x等于3。正規(guī)邏輯中“=”的含義用“=”或“=”表示,即判斷“=”或“==”兩邊的變量是否相等。這里不詳細(xì)介紹兩個等號和三個等號的區(qū)別。
javascript中的“=”到底意味著什么呢?
首先,==equal,==I identity。
其次,當(dāng)兩邊的值類型不同時(shí),應(yīng)先進(jìn)行類型轉(zhuǎn)換,再進(jìn)行比較。
===沒有類型轉(zhuǎn)換,不同的類型不能相等。
簡而言之,==先轉(zhuǎn)換類型然后比較,==先判斷類型。如果不是同一類型,則直接為false。
最后,做一個比較
先說===,判斷兩個值===是否相等:
1。如果類型不同,則[not equal
]2。如果兩者都是數(shù)值且值相同,則[相等];(!例外情況是,如果其中至少有一個是Nan,那么[不相等]。(判斷值是否為Nan,只能用isnan()判斷)]3。如果兩者都是字符串,并且每個位置的字符相同,則為[相等];否則為[不相等]。
如果兩個值屬于同一類型,請進(jìn)行比較。
2. 如果兩個值的類型不同,則它們可能相等。