Boolean类型
Boolean类型是JavaScript中使用的最多的一种类型,该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0。以下是为变量赋值Boolean类型值的例子:
var found = true;
var lost = false;
需要注意的是Boolean类型的字面值true和false是区分大小写的。也就是说True和False(或者其它混合大小写形式)都不是Boolean类型的值,只是标识符。
虽然Boolean类型的字面值只有两个,但ECMAScript中所有类型值,都有于这两个Boolean值等价的值。要将一个值转换为其对应的Boolean值,可以调用类型转换函数Boolean(),如下所示:
var msg = 'hello world';
var msgAsBool = Boolean(msg);
console.log(msgAsBool);//true
在这个例子中,字符串msg被转换成了Boolean值,该值被保存在msgAsBool变量中。可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean值,至于返回的是true还是false,取决于要转换值的数据类型及其实际值。下表给出了各种数据类型及其对应的转换规则。
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | 空字符串 |
Number | 任何非零的数值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | 无 | undefined |
这些转换规则对理解流控制语句自动执行相应的Boolean转换非常重要,看下面的代码:
var msg = 'hello world';
if(msg){
console.log('value is true');
}
运行这段代码,就会显示一个打印输出 value is true,因为字符串msg被自动转换成了对应的Boolean值true,由于存在这种自动执行的Boolean转换,因此确切的知道在流控制语句中使用的是什么变量至关重要。错误使用一个对象而不是一个Boolean值,就有可能彻底改变应用程序流程。