if 判断和 == 判断

2018-06-06  本文已影响0人  饥人谷_LS

if(xx) 判断

什么是 if(xx) 判断?

所谓的 if(xx) 判断,即是对括号中的 xx 或者说表达式通过布尔值判断结果。当然也有不是布尔值的时候,这时就会将表达式强制转换为布尔值之后进行判断。

原理

类型 结果
Undefined false
Null false
Boolean 直接判断
Number +0,-0或者 NaN 为 false,其他为 true
String 空字符串为 false,其他为 true
Object true

a==b 判断

a==b 判断的两个规则

原理

x y 结果
Null Undefined true
Number String x == toNumber(y)
Boolean (any) toNumber(x) == y
Object String or Number toPrimitive(x) == y
otherwise otherwise false

toNumber

type result
Undefined NaN
Null 0
Boolean true -> 1,false -> 0
String "abc" -> NaN,"123" -> 123

toPrimitive

对于 Object 类型,先尝试调用 .valueOf 方法获取结果,如果没有定义,再尝试调用 .toString 方法获取结果。

上一篇下一篇

猜你喜欢

热点阅读