is 和 as的区别

is返回true或false

计算对象是否与特定数据类型、类或接口兼容。使用 is 运算符(而非 instanceof 运算符)进行类型比较。还可以使用 is 运算符来检查对象是否实现某个接口

结果

Boolean — 如果 expression1 与在 expression2 中指定的数据类型、类或接口兼容,则为 true,否则为 false



 import flash.display.*;

import flash.events.IEventDispatcher;
var mySprite:Sprite = new Sprite();
trace(mySprite is Sprite);           // true
trace(mySprite is DisplayObject);    // true
trace(mySprite is IEventDispatcher); // true


as 运算符  
用法
expression as datatype
语言版本 :  ActionScript 3.0
Player 版本 :  Flash Player 9

计算第一个操作数指定的表达式是否为第二个操作数指定的数据类型的成员。如果第一个操作数是该数据类型的成员,则结果为第一个操作数。否则,结果为 null 值。

第二个操作数所用表达式的计算结果必须为数据类型。

操作数
expression:* — 要针对指定的数据类型进行检查的值。
datatype:Class — 用于计算 expression 操作数的数据类型。不能使用特殊的 * 类(即无类型)。
结果
Object — 如果 expression 是在 datatype 中指定的数据类型的成员,则结果为 expression。否则,结果为 null 值。

示例
如何使用示例
下例创建一个名为 myArray 的简单数组,并将 as 运算符用于各种数据类型。
public var myArray:Array = ["one", "two", "three"];
trace(myArray as Array);  // one,two,three
trace(myArray as Number); // null
trace(myArray as int);    // null

原文地址:https://www.cnblogs.com/jiahuafu/p/1450500.html