"== " 和 "=== "運(yùn)算符使用于比較兩個(gè)值是否相等。都允許任意類(lèi)型的操作數(shù),若操作數(shù)相等則返回true,否則返回false。
" ===" : 嚴(yán)格相等運(yùn)算符(恒等運(yùn)算符),用來(lái)檢測(cè)兩個(gè)操作數(shù)是否嚴(yán)格相等。【包含字面值和類(lèi)型】;
" ==" : 相等運(yùn)算符,“相等”的定義比較寬松,可以允許類(lèi)型轉(zhuǎn)換。
" =" : “得到或者是賦值”,
JavaScript中對(duì)象的比較是應(yīng)用的比較,而不是值的比較。對(duì)象和自身是相等的,和其他任何對(duì)象不想等。不論兩個(gè)對(duì)象具有相同的數(shù)量的屬性、相同的屬性名和屬性值,依然相等。相應(yīng)位置的數(shù)組元素相等的兩個(gè)數(shù)組也不相等。
恒等運(yùn)算符 “===”先計(jì)算自身的操作數(shù)的值,在比較兩個(gè)值,比較中沒(méi)有類(lèi)型的轉(zhuǎn)換:
1、兩個(gè)值的類(lèi)型不相同,則它們不相等;
2、兩個(gè)值都是null或者都是undefined,則它們不相等;
3、兩個(gè)值都是布爾值true或者都是false,則它們相等;
4、其中一個(gè)為NaN,或者兩個(gè)都為NaN,則它們不相等;
相等運(yùn)算符 “==”的比較不嚴(yán)格,若兩個(gè)操作數(shù)是不同類(lèi)型,則在比較過(guò)程中會(huì)進(jìn)行一些類(lèi)型的轉(zhuǎn)換后再比較: