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

if(xx)

类型 判断
undefined false
null false
number +0 -0 NaN为false,其余为true
boolean 对应的false,true
string 空字符串为false 其余为true
object ture

a==b

  1. 相等运算符用来比较相同类型的数据时,与严格相等运算符完全一样。比较不同类型的数据时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较。
  2. 原始类型的数据会转换成数值类型再进行比较
    比如'1' == 1,字符串'1'会被转换成数值1,所有这个为true
  3. 对象(这里指广义的对象,包括数组和函数)与原始类型的值比较时,对象转化成原始类型的值,再进行比较。
    比如[2] == 2,[2]会被转换为2所以为true
  4. undefined和null与其他类型的值比较时,结果都为false,它们互相比较时结果为true。

一般来说==这个比较会带来一些错觉,最好是用===可以准确的来进行比较。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容