Boolean 类型
该类型只有两个字面值: true 和 false 。
各种数据类型及其对应的转换规则:
数据类型 转换为true的值 转换为true的值
Boolean true false
String 任何非空字符串 "" (空字符串)
Number 任何非零数字值(包括无穷大) 0和 NaN (参见本章后面有关NaN的内容)
Object 任何对象 null
Undefined n/a① undefined
需要注意的是,undefined是转换为false,0也是转换为false,所以,在if进行数值判断时,需要额外小心,例如:
function test( num ) {
if ( !num ) return;
...
}
test(); // !num 为true,return;
test( 0 ); // 虽然传递了数值0,但是 !num 为true,return;
if ( !num ) 这个判断本身的目的可能是判断是否有传递数值,但是当传递了数值0时,也会被认为没有传递数值;