if(xx)和 a==b的判断

if的判断
对于括号里的表达式,会被强制转换为布尔类型:

当 if(number),0、NaN为false,其他值为true

当 if(string),空字符串为false,其他为true

当 if(boolean),直接判断

当 if(object),为true

当 if(undefined),为false

当 if(null),为false

a==b的判断

  1. string==number

判断为:toNumber(a)==b,如果a无法转换成number类型判断为false。

其中toNumber(undefined)的结果为NaN、toNumber(null)的结果为0。

2.(any)==boolean

在boolean类型转换中,true为1,false为0。

3.Object==number/string

object会使用valueOf和toString转换后再进行比较。

  1. null == undefined //true

toNumber

undefined --> NaN

null --> 0

boolean --> true:1, false:0

string --> "abc":NaN,"123":123

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容