ActionScript:is运算符的规范

时间:2015-06-19 08:42:03

标签: actionscript-3

我在搜索AS3中is运算符的预期行为时遇到问题。我需要知道的是,如果左侧是null,会发生什么。

我知道可以测试并获得实证结果,但我需要知道规范的内容,并且无法在任何地方找到它。

3 个答案:

答案 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 */ }