大區(qū)別
- ==代表相同;
- ===代表嚴(yán)格相同;
比較方式區(qū)別
- 雙等號(hào): 先檢查兩個(gè)操作數(shù)數(shù)據(jù)類(lèi)型,如果相同, 則進(jìn)行===比較, 如果不同, 則愿意為你進(jìn)行一次類(lèi)型轉(zhuǎn)換, 轉(zhuǎn)換成相同類(lèi)型后再進(jìn)行比較;
- 三等號(hào):===比較時(shí), 如果類(lèi)型不同,直接就是false;
比較過(guò)程
- 雙等號(hào)==:
(1)如果兩個(gè)值類(lèi)型相同,再進(jìn)行三個(gè)等號(hào)(===)的比較
(2)如果兩個(gè)值類(lèi)型不同,也有可能相等,需根據(jù)以下規(guī)則進(jìn)行類(lèi)型轉(zhuǎn)換在比較:
1、如果一個(gè)是null,一個(gè)是undefined,那么相等
2、如果一個(gè)是字符串,一個(gè)是數(shù)值,把字符串轉(zhuǎn)換成數(shù)值之后再進(jìn)行比較
- 三等號(hào)===:
(1)如果類(lèi)型不同,就一定不相等
(2)如果兩個(gè)都是數(shù)值,并且是同一個(gè)值,那么相等;如果其中至少一個(gè)是NaN,那么不相等。(判斷一個(gè)值是否是NaN,只能使用isNaN( ) 來(lái)判斷)
(3)如果兩個(gè)都是字符串,每個(gè)位置的字符都一樣,那么相等,否則不相等。
(4)如果兩個(gè)值都是true,或是false,那么相等
(5)如果兩個(gè)值都引用同一個(gè)對(duì)象或是函數(shù),那么相等,否則不相等
(6)如果兩個(gè)值都是null,或是undefined,那么相等