#yyds干货盘点#JavaScript - Boolean类型_字面值

Boolean类型是ECMAScript表现频率最高的一种类型,并不是我们去经常使用它,而且在一些JavaScript中的语法中,会默认的进行转换。该类型只有两个字面值:true和false。字面上理解为真值和假值,如果用数字来表示的话,0代表false,因为表示没有内容,而除了0(包括-0)都可以表示为true,因为都代表着拥有内容,但是这两个值与数字值又不是同一回事,因此true不一定等于1,false也不一定等于0。以下是变量赋值Boolean类型与等式的案例:

#yyds干货盘点#JavaScript - Boolean类型_ecmascript_02

不过需要注意的是,Boolean类型的字面值false和true在JavaScript中大小写是十分敏感的。也就是说False或者是True,再或者说是其他混合的大小写形式都不是Boolean的值,只能说是属于JavaScript中的标识符。

尽管Boolean类型的字面值只有两个,但是在ECMAScript中,所有类型的值都可以转化为Boolean值。在ECMAScript中提供了转型函数Boolean(),我们可以借助这个函数把类型转成相应的Boolean值,例如:

#yyds干货盘点#JavaScript - Boolean类型_javascript_03

在上述例子中,字符串leo经过转型函数Boolean()被转换成了Boolean类型,并且保存在leoForBoolean变量中。Boolean()函数在JavaScript中可以把传入的任意类型的值都统一变成Boolean类型,不过最后的值是true或者是false,这个取决于要转换的数据类型及实际值。不过在没有特殊情况下,经常使用的只有0、NaN、''(空字符串,双引号也可以)、null、undefined、false六个值转换为false,其他的情况都会转换为true。如下表:

#yyds干货盘点#JavaScript - Boolean类型_javascript_04

这些转化规则都会体现在流控制语句(如if语句)中,这些语句会自动执行Boolean的转化规则,例如:

#yyds干货盘点#JavaScript - Boolean类型_ecmascript_05

运行以上语句,会获得警告窗“有内容”的信息,因为字符串leo自动在if语句中自动通过Boolean()转化成了相应的boolean值true。请注意,这个转化是默认自动的。因此,上述表格中的转化规则就显得至关重要,我们完全可以通过转化规则来进行流控制语句中的自动转化方式的判断。不过值得注意一点的是,错误地使用一个对象而不是一个Boolean值,就有可能彻底改变整个应用程序的流程。