1.避免使用 ==true 和 == false 蹬敲。因?yàn)樵诒容^中读整,會將true和false強(qiáng)制類型轉(zhuǎn)換為1和0宾舅。
2.在==中在验,null和undefined相等糊识,其它值和他倆都不相等练慕。
3.抽象關(guān)系比較時,如果出現(xiàn)非字符串技掏,就根據(jù)ToNumber規(guī)則铃将,將雙方強(qiáng)制轉(zhuǎn)換為數(shù)字比較。如果雙方都是字符串哑梳,則按字母順序比較劲阎。
4.||和&&并不返回布爾值,而是返回兩個操作數(shù)中的一個鸠真。
5.JSON.stringify()在對象遇到undefined悯仙、function、symbol時會自動將其忽略吠卷。在數(shù)組中則會返回null锡垄。
6.==允許在相等比較中進(jìn)行強(qiáng)制類型轉(zhuǎn)換,而===不允許祭隔。
7.兩個對象指向同一個值時货岭,即視為相等,不發(fā)生強(qiáng)制類型轉(zhuǎn)換疾渴。
"0" == null //false
"0" == undefined //false
"0" == false //false
"0" == NaN //false
"0" == "" //false
"0" == 0 //true
false == null //false
false == undefined //false
false == NaN //false
false == 0 //true
false == "" // true
false == [] //true
false == {} //false
"" == null //false
"" == undefined //false
"" == NaN //false
"" == 0 //true
"" == [] //true
"" == {} //false
0 == null //false
0 == undefined //false
0 == NaN //false
0 == [] //true
0 == {} //false
[] == ![] //true
//~x大致等同于-(x+1)
~42 //-43