1.避免使用 ==true 和 == false 。因为在比较中,会将true和false强制类型转换为1和0。
2.在==中,null和undefined相等,其它值和他俩都不相等。
3.抽象关系比较时,如果出现非字符串,就根据ToNumber规则,将双方强制转换为数字比较。如果双方都是字符串,则按字母顺序比较。
4.||和&&并不返回布尔值,而是返回两个操作数中的一个。
5.JSON.stringify()在对象遇到undefined、function、symbol时会自动将其忽略。在数组中则会返回null。
6.==允许在相等比较中进行强制类型转换,而===不允许。
7.两个对象指向同一个值时,即视为相等,不发生强制类型转换。
"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