转型函数:Boolean( )
在ECMAScript中,所有类型的值都有与布尔类型(Boolean)的两个值等价的值。
要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean( )。
如:
var message = 'Hello World!';
var messageAsBoolean = Boolean(message);
alert(messageAsBoolean); //true
总之,可以对任何数据类型的值调用Boolean( )函数,而且总会返回一个Boolean值。至于返回的这个值是true还是false,取决于要转换值的数据类型及其实际值。
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | ""(空字符串) |
Number | 任何非零数字值 (包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | 不适用 | undefined |
这些转换规则对理解流控制语句(如 if 语句)自动执行相应的Boolean转换非常重要!
如:
var message = 'Hello World!';
if(message){
alert("变量message的值为:'非空字符串',因此,弹窗有效!");
}
运行这个例子,会显示一个警告框,因为字符串message被自动转换成了对应的Boolean值(true)。
由于存在这种自动执行的Boolean转换,因此确切的知道在流控制语句中使用的是什么变量至关重要!
错误的使用一个对象而不是一个Boolean值,就有可能彻底改变应用程序的流程。
————以上知识点来源于《JavaScript高级程序设计(第三版)》