js各种数据类型与布尔值之间的转换
数据类型 | 转为true的值 | 转为false的值 |
---|---|---|
Boolean | true | false |
String | 非空字符串 | 空字符串 |
Number | 非零数值(包括无穷值) | 0,NAN |
Object | 任意对象 | null |
Undefined | N/A(不存在) | undefined |
注:摘自《JavaScript高级程序设计》
在进行一些判断时要注意这些类型之间存在的隐式转换,例如判断一个数是否存在时不应该直接用if(x);而应该用if(typeof x===‘undefined’);否则如果x的值为零时会默认条件为false,就不会实现if条件里面的逻辑;示例如下:
字符串也会有这样的问题:
所以在做条件判断时一定要严谨,不能只图方便简洁。