我在搜索AS3中is
运算符的预期行为时遇到问题。我需要知道的是,如果左侧是null
,会发生什么。
我知道可以测试并获得实证结果,但我需要知道规范的内容,并且无法在任何地方找到它。
答案 0 :(得分:3)
你看起来不够努力。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/operators.html#is
"评估对象是否与特定数据类型,类或接口兼容。"
因为null
有点SPECIAL CASE和" Null数据类型的特殊之处在于它与类"无关。与false
运算符一起使用时,您将获得in
。
答案 1 :(得分:1)
ActionScript 3语言规范说明了以下the is operator:
is运算符检查左侧的值是否为其成员 右边的类型。对于用户定义的类型和大多数内置类型, 如果值是类的实例,则返回true 派生自右侧的类型,否则返回false。
由于null
属于special type Null
无法扩展且无法在is运算符的右侧使用,因此is运算符将始终返回false
。
| Value | String | Number | int | uint | Boolean | Object | |-------|--------|--------|-------|-------|---------|--------| | null | false | false | false | false | false | false |
答案 2 :(得分:0)
您可以通过此Adobe article了解is
运算符的工作原理:
它显示了这个例子:
if (xParam is String) { /* do some String things */ }
else if (xParam is Number) { /* do some Number thing */ }
它表明is
运算符用于类型检查。考虑var myNumber : dataType = new dataType
。现在,未知数据类型被归类为Number
?,int
?,String
?还是Bitmap
?此方法允许您创建功能代码,以预测输入的数据格式并相应地处理。
您不使用is
来检查null
,但也可以使用==
相等运算符。
if (xParam == null) { /* do IS NULL things */ }
else { /* do some IS NOT NULL thing */ }