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

2018-12-07  本文已影响0人  原上的小木屋

if的判断

  1. 对于类型为Undefined,转换为false
  2. 对于类型为Null,转换为false
  3. 对于类型为Boolean,直接判断
  4. 对于类型为Number+0、-0、0.00NANfalse,其他为true
  5. 对于类型为String,空字符串为false,其余为true
  6. 对于类型为Object,转换为true
  1. if ("hello") { console.log("hello") } 输出hello
  2. if ("") { console.log('empty') } 输出undefined
  3. if (" ") { console.log('blank') } 输出blank
  4. if ([0]) { console.log('array') } 输出array
  5. if('0.00'){ console.log('0.00') } 输出0.00

==的判断

  1. x类型为nullyundefined,结果为true
  2. x类型为numbery类型为string,均会将y转化为数字,式子转换为x==toNumber(y)
  3. x类型为Boolean,y类型不限,也均会转化为数字,式子转换为toNumber(x) ==y
  4. x类型为Objecty类型为StringNumber,会将对象转换为字符串或数字,式子转换为toPrimitive(x) ==y
  1. Undifined转化为NaN
  2. Null转化为0
  3. Booleantrue转化为1,false转化为0
  4. 字符串 "abc"转化为NaN"123"转化为123,空字符串空白字符串均转化为0
  1. "" == 0 结果为true
  2. " " == 0 结果为true
  3. "" == true 结果为false
  4. "" == false 结果为true
  5. " " == true 结果为false
  6. !" " == true 结果为false
  7. !" " == false 结果为true
  8. "hello" == true 结果为false
  9. "hello" == false 结果为false
  10. "0" == true 结果为false
  11. "0" == false 结果为true
  12. "00" == false 结果为true
  13. "0.00" == false 结果为true
  14. undefined == null 结果为true
  15. true=={} 结果为false
  16. [] == true 结果为false
  1. obj == "[object Object]" 结果为false
  2. obj == 1 结果为true
  3. obj == true 结果为true
上一篇下一篇

猜你喜欢

热点阅读