前端学习笔记之强制类型转换

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

你可能感兴趣的:(前端学习笔记之强制类型转换)