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

if对于括号内true/false的判断

  • 对于数字来说,0、0.0、-0.0会被判为false,其余非零数字都会判为true
  • 对于布尔类型直接判断即可
  • 对于字符串来说,空字符串会被判为false,非空字符串会被判为true,空格为非空字符串
  • 对象都会判为true
  • null、undefined都会被判为false

a == b返回值的判断

主要思想将a,b都转换成数字
对于布尔变量存在如下等价关系:

0 == false //返回true
1 == true //返回true
2 == true ///返回false

对于字符串,能转换成数字的就转换成数字,包含字母就不能转换成数字了
对于undefined null只有这两个彼此之间 == 时才返回true,否则和任何其他类型的任何值都不会返回true
对于对象,先尝试调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结果

你可能感兴趣的:(if(xx)和a == b的判断)