关于if的判断
在js中,if的判断是遵循一定原则的,括号内的表达式会被强制转化为布尔类型,输出为True或者False。对于不同中类型的表达式JS有不同的输出。
对于类型为Undefined和Null表达式,输出结果为false
对于类型为Object的表达式,直接输出结果为True
对于类型为Boolean的表达式,直接判断结果为True 或者False
对于类型为Number订单表达式,除非是+0,-0或者是NAN结果为False,其余Number输出结果都是True
对于类型为String的表达式,除了空字符结果为False,其余输出都是True
关于==的判断
相比if的判断,在js中关于==的判断就相对复杂
例如==的左右分别为X和Y,有如下规则:
若X是null,Y是undefined,则输出结果为True
若x是number,Y是string ,则将字符串转换为数字再进行判断,
若x是boolean,Y是其他类型,则先将Boolean转换为数字再进行判断
若x是Object,Y是Number或者String,则先将对象转化为字符串或数字,再进行判断
除了上述几种类型,其余的输出结果都是False