在javascript中,if语句括号中的表达式返回值可以是任何类型,即:if(a)中的a可以是boolean、number、string、object、function、undefined中的任何类型,这便会涉及到不同类型和boolean类型的转换问题。
如果a不是boolean类型,那么js解释器会自动调用Boolean()函数对a进行类型转换,Boolean()的返回值是一个boolean类型的变量。
string类型
- 空字符串,即“”或‘’转换为false
- 任何非空字符串转换为true
number类型
- 0和NaN转换为false
- 除0和NaN转换为true(包括Infinity和-Infinity)
object
- null转换为false
- 除null转换为true
function
- 转换为true
undefined
- 转换为false