AS3中布尔转换为假的情况
在ActionScript3.0中,一共有三种数据类型和三种变量的值在转换为布尔值之后为假。
一、六种布尔转换为假的情况
多数数据类型或变量值转换成布尔值之后均为真,因此我们只需记住哪些情况为假即可。转换成布尔值之后为假的情况一共有6种:
void, undefined,null, ”(这里不是双引号,是两个单引号,表示空字符串,亦可以用“”表示), 0(不是噢,是零), false,Number.NaN
前2个为数据类型,是AS3中两个特殊的数据类型,可以称之为常量数据类型,因为它们的值是固定不变的。后面4个是数据类型的特殊值。null为未实例化的空对象,”为空字符串,0与Number.NaN为数值类型的特殊值,false为布尔假。
二、代码实验:验证上述六种情况
可以用以下代码验证,以下trace均为false,除此之外的情况,例如非null对象,不等于0的数字等等均为true:
1 2 3 | trace( Boolean(<span style="color: #0000ff;">void</span>), Boolean(<span style="color: #0000ff;">null</span>), Boolean(undefined), Boolean(''), Boolean(0), Boolean(Number.NaN) ); |
不少初学AS3的人只知道当字符串为null时,其值为假,其实为空时,亦为假。
三、简单应用举例
在XML操作中,经常会遇到判断一个属性是否被定义的情况,如下:
1 | if (undefined != node.@name) |
其实不需要undefined关键字,只需要写成这样便可以:
1 | if (node.@name) |
undefined关键字太长,写起来是一件很麻烦的事情:)

